Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
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
@AndyPook

This comment has been minimized.

Copy link

commented May 13, 2019

should the Remove-StoppedContainers include something like -f "status=exited" ?

@sixeyed

This comment has been minimized.

Copy link
Owner Author

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
You can’t perform that action at this time.