Resumo dos comandos Docker
O Docker possui uma grande variedade de comandos para gerenciar contêineres, imagens, volumes e networks. Há aqui uma lista de comandos para trabalhar com contêineres e imagens, importantíssimos para ações comuns.
▸ Estrutura básica de um comando Docker
Esta lista segue a nova convenção de comandos do Docker, que segue a seguinte estrutura:
docker [objeto] [ação] [--opcoes]
Os objetos podem ser, por exemplo, container, image e volume. Uma lista completa dos objetos pode ser vista ao rodar o comando docker --help:
Management Commands:
builder Manage builds
compose* Docker Compose
container Manage containers
context Manage contexts
image Manage images
manifest Manage Docker image manifests and manifest lists
network Manage networks
plugin Manage plugins
system Manage Docker
trust Manage trust on Docker images
volume Manage volumes
▸ Contêineres
- Listando contêineres:
docker container ls # lista os contêineres ativos
docker container ls -a # lista todos os contêineres
- Criando e acessando containers:
docker container create --name meu-container -it alpine sh
Nesse caso, o container será chamado "mycontainer" e será baseado na imagem do Alpine. A flag -it permite que possamos acessar o container posteriormente, quando estiver ativo, e sh diz que shell usaremos para acessar esse container.
- Iniciando e acessando um container:
docker container start meu-container # inicia o container
docker container attach meu-container # acessa o container através do shell definido anteriormente
docker container start -ia meu-container # inicia e acessa o container
- Parndo um container ativo
docker container stop meu-container
- Removendo um container
docker container rm meu-container
- Executando um comando shell
docker container exec meu-container [comando]
- Copiando um arquivo para dentro do container
docker container cp meu-arquivo meu-container:/diretorio/que/você/quer
- Expondo uma porta do container
docker container run -d -p 80:80 --name meu-container nginx
Nesse caso, run cria e inicia o container, -d evita de acessar o container depois de inicializado, -p define uma porta, nesse caso a porta 80 está conectada à porta 80 do container.
- Vendo informações sobre um container em execução
docker container inspect meu-container
Criando volumes
docker container run -v /home/usuario/projeto:/projeto/ --name meu-container -it alpine sh
A flag -v informa o volume que queremos criar e conctar ao nosso container, sendo que passamos um diretório primeiro (nesse caso, /home/usuario/projeto) e depois passamos o diretório no nosso container (/projeto), separados por ":".
▸ Gerenciando imagens
- Gerando uma imagem a partir de um container
docker image commit [nome do container] [nome da imagem]
- Listando imagens já existentes na sua máquina
docker image ls
- Exportando uma imagem para um arquivo .tar
docker image save -o [nome-do-arquivo.tar] [nome-da-imagem]
- Importando uma imagem de um arquivo .tar
docker image load -i [nome-do-arquivo.tar]