cicorias
11/13/2018 - 11:09 PM

PowerShell profile with a Linux-style prompt and aliases for common Docker commands

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