Connection Information

To perform the requested action, WordPress needs to access your web server. Please enter your FTP credentials to proceed. If you do not remember your credentials, you should contact your web host.

Connection Type

Connection Information

To perform the requested action, WordPress needs to access your web server. Please enter your FTP credentials to proceed. If you do not remember your credentials, you should contact your web host.

Connection Type

▷ 15 comandos do Docker para gerenciar contêineres [List, Stop, Start, Remove and More]

15 comandos do Docker para gerenciar contêineres [List, Stop, Start, Remove and More]

Nota: O seguinte artigo irá ajudá-lo com: 15 comandos do Docker para gerenciar contêineres [List, Stop, Start, Remove and More]

O Docker é uma ferramenta popular para criar e executar aplicativos em contêiner. Ele está disponível para várias plataformas e é usado como uma das tecnologias de contêiner de back-end no Kubernetes.

No Docker, você cria suas próprias imagens para executar seu aplicativo como um contêiner ou pode extrair e usar milhares de imagens públicas do repositório do Docker e usá-las em seu projeto. Quando sua imagem estiver pronta, você poderá iniciar seus contêineres usando essas imagens. Um contêiner é uma instância em execução de uma imagem do Docker.

O gerenciamento de contêineres do Docker é um dos aspectos mais importantes a serem observados como administrador de sistema que gerencia hosts/contêineres do Docker.

Neste artigo, vamos nos concentrar no gerenciamento de contêineres usando o comando docker.

comando de execução

O comando docker run é usado para executar um contêiner a partir de uma imagem especificando o ID da imagem ou o nome do repositório e/ou da tag.

$ docker run {image}

Exemplo:

$ docker run nginx

O comando acima executa uma instância do aplicativo nginx em um host do docker, se ele já existir. Se não existir no host do Docker, ele vai para o hub do docker (por padrão) e puxa a imagem para baixo. Mas isso é feito apenas pela primeira vez. Para vezes subsequentes, a mesma imagem é reutilizada.

Se você deseja executar uma versão específica de uma imagem, especifique sua versão separada por dois pontos. Isso é conhecido como Tag. Caso você não especifique nenhuma tag, o docker a considerará por padrão como a mais recente.

Além disso, se você quiser executar o contêiner em segundo plano em um modo desanexado para voltar ao prompt após o Docker iniciar o contêiner, use o sinalizador -d.

Exemplo:

$ docker run nginx
Unable to find image 'nginx:latest' locally
latest: Pulling from library/nginx
33847f680f63: Pull complete
dbb907d5159d: Pull complete
8a268f30c42a: Pull complete
b10cf527a02d: Pull complete
c90b090c213b: Pull complete
1f41b2f2bf94: Pull complete
Digest: sha256:8f335768880da6baf72b70c701002b45f4932acae8d574dedfddaf967fc3ac90
Status: Downloaded newer image for nginx:latest
/docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration
/docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/
/docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh
10-listen-on-ipv6-by-default.sh: info: Getting the checksum of /etc/nginx/conf.d/default.conf
10-listen-on-ipv6-by-default.sh: info: Enabled listen on IPv6 in /etc/nginx/conf.d/default.conf
/docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.sh
/docker-entrypoint.sh: Launching /docker-entrypoint.d/30-tune-worker-processes.sh
/docker-entrypoint.sh: Configuration complete; ready for start up
2021/08/15 12:13:23 [notice] 1#1: using the "epoll" event method
2021/08/15 12:13:23 [notice] 1#1: nginx/1.21.1
2021/08/15 12:13:23 [notice] 1#1: built by gcc 8.3.0 (Debian 8.3.0-6)
2021/08/15 12:13:23 [notice] 1#1: OS: Linux 5.8.0-1039-azure
2021/08/15 12:13:23 [notice] 1#1: getrlimit(RLIMIT_NOFILE): 1048576:1048576
2021/08/15 12:13:23 [notice] 1#1: start worker processes
2021/08/15 12:13:23 [notice] 1#1: start worker process 33
2021/08/15 12:13:23 [notice] 1#1: start worker process 34

Comando ps

O comando docker ps lista todos os contêineres em execução e algumas informações básicas sobre eles. Como ID do contêiner, nome da imagem, horário de criação do contêiner, status atual e nome do contêiner. Cada contêiner recebe um nome aleatório (se não for especificado explicitamente) e ID.

Exemplo:

$ docker ps 
CONTAINER ID   IMAGE     COMMAND                  CREATED          STATUS          PORTS     NAMES 
133f5e0267a5   nginx     "/docker-entrypoint.…"   10 seconds ago   Up 10 seconds   80/tcp    jolly_elion 

Para listar todos os contêineres em execução e não em execução/saída de uma só vez, você pode usar:

$ docker ps -a

Exemplo:

$ docker ps -a 
CONTAINER ID   IMAGE         COMMAND                  CREATED        STATUS                    PORTS     NAMES 
fcec129f0eb4   nginx         "/docker-entrypoint.…"   46 hours ago   Exited (0) 46 hours ago             interesting_ishizaka 
6e8b1e441aa6   hello-world   "/hello"                 2 days ago     Exited (0) 2 days ago               keen_shirley 

Comando ls

Assim como o comando ps, ls também pode ser usado para listar contêineres. -um sinalizador pode ser usado para listar todos os contêineres (não apenas os em execução).

$ docker container ls

Exemplo:

$ docker container ls
CONTAINER ID   IMAGE     COMMAND                  CREATED          STATUS          PORTS      NAMES
15796e91c30b   redis     "docker-entrypoint.s…"   2 seconds ago    Up 1 second     6379/tcp   flamboyant_neumann
904390b65d45   nginx     "/docker-entrypoint.…"   14 minutes ago   Up 14 minutes   80/tcp     nginx_new
$

comando de parada

O comando docker stop é usado para interromper um contêiner em execução. Aqui precisamos colocar o nome ou ID do contêiner junto com isso.

$ docker stop {container-id}

Em caso de sucesso, ele retornaria o nome ou ID do docker.

Exemplo:

$ docker ps 
CONTAINER ID   IMAGE     COMMAND                  CREATED          STATUS          PORTS     NAMES 
133f5e0267a5   nginx     "/docker-entrypoint.…"   50 seconds ago   Up 49 seconds   80/tcp    jolly_elion 

Isso retornará o ID DO CONTAINER que você pode usar para parar o contêiner.

$ docker stop 133f5 
133f5

Para este exemplo e os próximos, observe que você não precisa especificar um valor completo de CONTAINER ID. Ele aceitará até a parte, o que o torna único entre outros contêineres em execução, pois o Docker sabe qual contêiner parar.

Comando rm

O comando docker rm remove um contêiner parado ou encerrado.

$ docker rm {CONTAINER NAME or ID}

Exemplo:

$ docker rm 133f5
133f5
$

Comando exec

Podemos usar o comando exec para entrar em um contêiner em execução. Isso é útil para depurar contêineres em execução ou fazer algumas coisas dentro de um contêiner.

$ docker exec –it {container} {command}

Exemplo:

Suponha que você queira iniciar o shell bash (supondo que a imagem tenha o Bash disponível, você também pode usar outros shells disponíveis) dentro de um contêiner chamado unruffled_meninsky no modo interativo, use:

$ docker exec –it unruffled_meninsky /bin/bash

Isso deve colocá-lo dentro do contêiner em um shell bash. Aqui o sinalizador -i representa o modo interativo e -t o terminal. Se você deseja apenas executar um ou mais comandos e sair do contêiner, você pode usar:

$ docker exec unruffled_meninsky cat /etc/hosts
127.0.0.1	localhost 
::1	localhost ip6-localhost ip6-loopback 
fe00::0	ip6-localnet 
ff00::0	ip6-mcastprefix 
ff02::1	ip6-allnodes 
ff02::2	ip6-allrouters 
172.17.0.2	cd2eed4acf34 

Comando logs

Caso um container seja lançado no modo desanexado e queiramos ver seus logs, podemos usar o comando logs para revisar seus logs:

$ docker logs {CONTAINER NAME or ID}

Exemplo:

$ docker logs 7da6dcebaf9c
/docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration
/docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/
/docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh
10-listen-on-ipv6-by-default.sh: info: Getting the checksum of /etc/nginx/conf.d/default.conf
10-listen-on-ipv6-by-default.sh: info: Enabled listen on IPv6 in /etc/nginx/conf.d/default.conf
/docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.sh
/docker-entrypoint.sh: Launching /docker-entrypoint.d/30-tune-worker-processes.sh
/docker-entrypoint.sh: Configuration complete; ready for start up
2021/08/15 12:14:09 [notice] 1#1: using the "epoll" event method
2021/08/15 12:14:09 [notice] 1#1: nginx/1.21.1
2021/08/15 12:14:09 [notice] 1#1: built by gcc 8.3.0 (Debian 8.3.0-6)
2021/08/15 12:14:09 [notice] 1#1: OS: Linux 5.8.0-1039-azure
2021/08/15 12:14:09 [notice] 1#1: getrlimit(RLIMIT_NOFILE): 1048576:1048576
2021/08/15 12:14:09 [notice] 1#1: start worker processes
2021/08/15 12:14:09 [notice] 1#1: start worker process 31
2021/08/15 12:14:09 [notice] 1#1: start worker process 32
$

Comando cp

Para copiar arquivos entre um contêiner e um sistema de arquivos localhost, você pode usar o comando cp.

$ docker container cp {CONTAINER NAME or ID:SRC_PATH} {DEST_PATH}|-

Exemplo:

$ docker container cp quirky_cray:/etc/nginx/nginx.conf nginx.conf.bkp

Comando de exportação

O comando Docker container oferece uma opção para exportar o sistema de arquivos de um container como um arquivo TAR.

$ docker container export {CONTAINER NAME or ID}

comando inspecionar

Podemos verificar informações detalhadas sobre um contêiner usando o comando inspecionar como:

$ docker inspect {CONTAINER NAME or ID}

OU

$ docker container inspecionar {CONTAINER NAME or ID}

Comando matar

Um contêiner em execução pode ser eliminado usando o comando kill com um sinalizador opcional –signal ou -s. Vários contêineres podem ser especificados para matá-los de uma só vez.

$ docker kill {CONTAINER NAME or ID} [--signal VAL]

Exemplo:

$ docker kill cd9005a0b5d2 -s 9
cd9005a0b5d2
$

Comando de estatísticas

Para exibir uma transmissão ao vivo do uso de recursos de um contêiner, você pode usar o comando stats:

$ docker container stats {CONTAINER NAME or ID}

Exemplo:

$ docker container stats thirsty_volhard
CONTAINER ID   NAME              CPU %     MEM USAGE / LIMIT     MEM %     NET I/O       BLOCK I/O     PIDS
904390b65d45   thirsty_volhard   0.00%     3.406MiB / 7.775GiB   0.04%     1.02kB / 0B   0B / 8.19kB   3

comando superior

Como o comando top no Linux, podemos usá-lo com o Docker para obter uma lista de processos em execução.

$ docker container top {CONTAINER NAME or ID}

Exemplo:

$ docker container top thirsty_volhard
UID                 PID                 PPID                C                   STIME               TTY                 TIME                CMD
root                2603                2582                0                   12:34               ?                   00:00:00            nginx: master process nginx -g daemon off;
systemd+            2659                2603                0                   12:34               ?                   00:00:00            nginx: worker process
systemd+            2660                2603                0                   12:34               ?                   00:00:00            nginx: worker process
$

Renomear Comando

Para renomear um contêiner existente, use o comando rename.

$ docker container rename {OLD CONTAINER NAME} {NEW CONTAINER NAME}

Exemplo:

$ docker ps
CONTAINER ID   IMAGE     COMMAND                  CREATED         STATUS         PORTS     NAMES
904390b65d45   nginx     "/docker-entrypoint.…"   7 minutes ago   Up 7 minutes   80/tcp    nginx_container
$ docker container rename nginx_container nginx_new
$ docker ps
CONTAINER ID   IMAGE     COMMAND                  CREATED         STATUS         PORTS     NAMES
904390b65d45   nginx     "/docker-entrypoint.…"   7 minutes ago   Up 7 minutes   80/tcp    nginx_new
$

Comando diff

Podemos inspecionar alterações em arquivos ou diretórios no sistema de arquivos de um contêiner com o comando diff.

$ docker container diff {CONTAINER NAME or ID}

Exemplo:

$ docker container diff nginx_new
C /var
C /var/cache
C /var/cache/nginx
A /var/cache/nginx/uwsgi_temp
A /var/cache/nginx/client_temp
A /var/cache/nginx/fastcgi_temp
A /var/cache/nginx/proxy_temp
A /var/cache/nginx/scgi_temp
C /etc
C /etc/nginx
C /etc/nginx/conf.d
C /etc/nginx/conf.d/default.conf
C /run
A /run/nginx.pid
$

Resumo

Para concluir, o Doker oferece um extenso conjunto de comandos para gerenciar contêineres desde sua criação até a destruição. Cobrimos alguns dos comandos importantes e seu uso neste artigo, que deve fornecer uma boa ideia sobre o gerenciamento de contêineres do Docker.

Em seguida, conheça alguns dos recursos para aprender DevOps.