Esses scripts são compatÃveis com Docker 1.12 e Docker para Windows.
Eu mantenho esta folha de dicas atualizada no meu blog aqui .
Habilite o modo de enxame:
docker swarm init
Crie uma rede de sobreposição personalizada:
$network = "network_name"
docker network create --driver overlay $network
Crie e inicie um serviço usando uma rede de sobreposição personalizada:
$service = "service_name"
$network = "network_name"
$image = "image_name"
$replicas = 5
docker service create --name $service --network $network --replicas $replicas $image
Inicie um serviço e exponha uma porta no sistema host:
$service = "service_name"
$network = "network_name"
$image = "image_name"
$hostPort = 8080
$servicePort = 80
docker service create --name $service --network $network --publish ${hostPort}:${servicePort} $image
# test port
Start-Sleep -s 5
Test-NetConnection -ComputerName "10.0.75.2" -Port $hostPort -InformationLevel "Detailed"
Inicie um serviço e monte um diretório de sistema local:
$service = "service_name"
$image = "image_name"
$hostDir = "/c/users/docker/data"
$serviceDir = "/data"
docker service create --mount type=bind,src=$hostDir,dst=$serviceDir --name $service $image
Liste todos os serviços correspondentes:
$service = "service_name_part"
docker service ls --filter name=$service
Obtenha estatÃsticas de CPU, memória, rede e IO para todas as instâncias em execução de um serviço swarm:
$service = "service_name"
docker stats $(docker ps -q -f "name=$service") --no-stream
Obtenha a lista de IP virtual de todas as instâncias em execução de um serviço swarm:
$service = "service_name"
docker inspect --format='{{.Name}}{{range .NetworkSettings.Networks}} IP: {{.IPAMConfig.IPv4Address}} {{end}}' $(docker ps -q -f "name=$service")
Obtenha o IP virtual de todas as instâncias em execução de um serviço swarm para uma rede de sobreposição especÃfica:
$service = "service_name"
$network = "network_name"
$template = '{{.Name}}{{with index .NetworkSettings.Networks "' + $network + '""}} {{.IPAddress}}{{end}}'
docker inspect -f $template $(docker ps -q -f ""name=$service"")
Obtenha a lista de volumes de todas as instâncias em execução de um serviço swarm:
$service = ""service_name""
docker inspect --format '{{.Name}}{{range .Mounts}} Source: {{.Source}} Destination: {{.Destination}}{{end}}' $(docker ps -q -f ""name=$service"")
Remova todas as instâncias de um serviço swarm que não estão em execução:
$service = ""service_name""
docker rm $(docker ps -a -q -f ""name=$service"" -f ""status=exited"")
Atualize um serviço:
$service = ""service_name""
$image = ""image_name""
docker service update --image $image $service
Pare um serviço:
$service = ""service_name""
docker service scale ${service}=0
Remova um serviço:
$service = ""service_name""
docker service rm $service
Remova todos os contêineres parados:
docker rm $(docker ps -a -q -f ""status=exited"")
Remova as imagens não marcadas:
docker rmi $(docker images -q -f ""dangling=true"")
Remova os volumes órfãos:
docker volume rm $(docker volume ls -q -f ""dangling=true"")
Pare e remova todos os contêineres por nome de imagem ou ID de imagem:
$image = ""image_name""
docker rm $(docker stop $(docker ps -a -q -f ""ancestor=$image""))
“