Docker e Docker Swarm, comandos úteis

Thiago Soares
Docker: Um canivete suíço
2 min readMar 22, 2020

Compilado com os principais comandos úteis para serem usados no Docker. Esses comandos eu usei em alguns projetos que fiz usando a ferramenta e é sempre bom tê-los a mão.

* Listar os containers

docker ps -a

* Listar as imagens

docker images

* Remover todas as imagens

$ docker image rm $(docker images -a -q)

* Remover as imagens

docker rmi -f <hash_da_imagem>

* Remover containers parados

docker container prune

* Executar o build da Imagem

docker build . 

* Executar comandos dentro do container

docker exec <container_app_1> <comando> 
Ex: docker exec app_1 bundle update sidekiq

* Comitar o container para o DockerHub

docker commit 3542b2ce5459 <conta_docker_hub>/<repositorio>:<nome_do_container>

* Comitar a Imagem para o DockerHub

docker push --disable-content-trust <conta_docker_hub>/<repositorio>:<nome_da_imagem>

* Rodandar um container com serviço

docker run --name=test-mysql --env="MYSQL_ROOT_PASSWORD=password" mysql

* Limpar volumes

docker volume rm $(docker volume ls -qf dangling=true)

* Inspecionar o container

docker inspect <nome_container>

* Serviço de visualização dos containers

docker run -it -d -p 8080:8080 -v /var/run/docker.sock:/var/run/docker.sock alexellis2/visualizer-arm

Docker Swarm

* Iniciando o Docker Swarm

docker swarm init
Swarm initialized: current node (pl413mbkxs2erzys9jt1rqxrs) is now a manager.
To add a worker to this swarm, run the following command: docker swarm join \
--token SWMTKN-1-6cle1zh7cbp90dvxjvf4kmxd359ovijaqglpxyt6ahfbf09fc9-3we1dfjb3ilmk8qu2gfi3tvay \
192.168.1.5:2377
To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.

* Criar um serviço no Docker Swarm

docker service create --name web-nginx --replicas 4 --restart-max-attempts 3 --restart-window 5s --workdir /myapp/ -p 8081:80 nginx:alpine

* Deploy de Docker Compose no Docker Swarm

docker stack deploy --compose-file=docker-compose_3_version.yml <App_name>

* Visualizando os serviços ativos no Docker Swarm

docker service ls

* Deploy de serviço Viz no Docker Swarm

docker service create \
--name=viz \
--publish=8080:8080/tcp \
--constraint=node.role==manager \
--mount=type=bind,src=/var/run/docker.sock,dst=/var/run/docker.sock \
alexellis2/visualizer-arm

--

--