Docker – Primeiros comandos

Quando rodamos o Docker em um sistema Linux eliminamos a necessidade de virtualiza-lo. No escopo de rede tudo funciona como localhost, já que o daemon e o cliente estão na mesma máquina. No Linux também não há necessidade de configurações adicionais, como definir variáveis de ambiente que apontam nosso Docker client para nosso Docker Engine que esteja rodando remotamente, mas por padrão ele executa os comandos diretamente no locahost.

Para obter ajuda com os comandos do Docker:

[root@notebook ~]# docker --help

Para informações detalhadas de um comando:

docker  --help

Para visualizar a versão do Docker:

[root@notebook ~]# docker version 

Para informações mais detalhadas:

[root@notebook ~]# docker info

Para listar os containers que estão sendo executadas:

[root@notebook ~]# docker ps -a
CONTAINER ID    IMAGE           COMMAND     CREATED         STATUS                      PORTS   NAMES
d74aee409773    hello-world     "/hello"    30 seconds ago  Exited (0) 5 seconds ago            clever_newton

O docker ps funciona como o ps do Linux mostrando os processos dockers que estão sendo executados, no nosso caso, os containeres. O -a lista todos os containeres. Quando estamos com o prompt do container aberto, o processo-base desse container é o shell. Se digitarmos logout, exit ou Ctrl+D sairemos do container fazendo o mesmo parar.

Para sair do container sem finalizá-lo utilizamos o atalho Ctrl+P+Q.. Para voltarmos ao container executamos o attach e o ID do contêiner:

[root@notebook ~]# docker attach c7ec0f53134c 

Para obter somente os ID’s dos contêineres que estão rodando:

[root@notebook ~]# docker ps -q 
c7ec0f53134c

Para parar um contêiner:

[root@notebook ~]# docker stop c7ec0f53134c

E de maneira simples para iniciar um container parado:

[root@notebook ~]# docker start c7ec0f53134c 
c7ec0f53134c

Para removermos um container utilizamos o “rm”:

[root@notebook ~]# docker rm 2b1dd1e17635

Também pode ser removido passando o nome como argumento.

Para listar as imagens que temos localmente no nosso Docker host:

[root@notebook ~]# docker images 
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
hello-world         latest              48b5124b2768        2 months ago        1.84 kB

Para buscarmos uma imagem no Docker Hub:

[root@notebook ~]# docker search centos7 | head -n5 
NAME                                     DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
ansible/centos7-ansible                  Ansible on Centos7                              97                   [OK]
milcom/centos7-systemd                                                                   6                    [OK]
opencpu/centos7                          Development build of OpenCPU based on Cent...   3                    [OK]
labiomed/centos7-systemd                 Deprecated in favor of https://hub.docker....   2                    [OK]

Para baixar uma imagem:

[root@notebook ~]# docker pull ansible/centos7-ansible 
Using default tag: latest
latest: Pulling from ansible/centos7-ansible
45a2e645736c: Pull complete 
1c3acf573616: Pull complete 
edcb61e55ccc: Pull complete 
cbae31bad30a: Pull complete 
aacbdb1e2a62: Pull complete 
fdeea4fb835c: Pull complete 
Digest: sha256:39eff7d56b96530d014083cd343f7314c23acbd1ecf37eb75a71a2f6584d0b02
Status: Downloaded newer image for ansible/centos7-ansible:latest

Já podemos conferir nossa nova imagem:

[root@notebook ~]# docker images | grep centos7 
ansible/centos7-ansible   latest              688353a31fde        3 months ago        447 MB

Para removermos uma imagem:

[root@notebook ~]# docker rmi hello-world

Para executar um container de maneira interativa utilizando a imagem debian:

[root@notebook ~]# docker run -it debian /bin/bash

Para ver a lista de comandos executados em um container:

[root@notebook ~]# docker logs hungry_shirley

Ele é parecido com o comando “history” e também pode ser executado pelo nome ou pelo ID.

Para verificarmos uso de CPU, Memória e detalhes dos containeres que estão rodando:

[root@notebook ~]# docker stats

Para mais informações podemos utilizar o Docker system:

[root@notebook ~]# docker system --help 

Para verificar o espaço em disco que os contêineres estão utilizando:

[root@notebook ~]# docker system df 
TYPE                TOTAL               ACTIVE              SIZE                RECLAIMABLE
Images              3                   1                   700.2 MB            577.2 MB (82%)
Containers          2                   1                   0 B                 0 B
Local Volumes       0                   0                   0 B                 0 B

Referência:
https://docs.docker.com/engine/reference/commandline/docker/