Skip to content

Instantly share code, notes, and snippets.

@sixeyed
Created November 1, 2018 11:25
Show Gist options
  • Save sixeyed/c3ae1fd8033b8208ad29458a56856e05 to your computer and use it in GitHub Desktop.
Save sixeyed/c3ae1fd8033b8208ad29458a56856e05 to your computer and use it in GitHub Desktop.
PowerShell profile with a Linux-style prompt and aliases for common Docker commands
function Prompt(){
$W = Split-Path -leaf -path (Get-Location)
$prompt = Write-Prompt "$($env:UserName)@$($env:ComputerName):" -ForegroundColor Green
$prompt += Write-Prompt $W -ForegroundColor DarkCyan
$prompt += Write-Prompt '>'
return ' '
}
function Remove-StoppedContainers {
docker container rm $(docker container ls -q)
}
function Remove-AllContainers {
docker container rm -f $(docker container ls -aq)
}
function Get-ContainerIPAddress {
param (
[string] $id
)
& docker inspect --format '{{ .NetworkSettings.Networks.nat.IPAddress }}' $id
}
function Add-ContainerIpToHosts {
param (
[string] $name
)
$ip = docker inspect --format '{{ .NetworkSettings.Networks.nat.IPAddress }}' $name
$newEntry = "$ip $name #added by d2h# `r`n"
$path = 'C:\Windows\System32\drivers\etc\hosts'
$newEntry + (Get-Content $path -Raw) | Set-Content $path
}
Set-Alias drm Remove-StoppedContainers
Set-Alias drmf Remove-AllContainers
Set-Alias dip Get-ContainerIPAddress
Set-Alias d2h Add-ContainerIpToHosts
@sixeyed
Copy link
Author

sixeyed commented Aug 9, 2019

The default for rm is to only remove stopped containers.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment