26 comandos do Docker com exemplos

Folha de dicas sobre comandos do Docker para sysadmin e desenvolvedores…


O Docker é um sistema de contêiner que empacota e executa o aplicativo com suas dependências dentro de um contêiner. Existem vários comandos do docker que você deve saber ao trabalhar com o Docker. Este artigo é sobre isso.

Se você não sabe o que é o Docker, pode fazer isso Curso para iniciantes da Udemy.

Localizando a versão

Uma das primeiras coisas que você deseja saber é como encontrar a versão do docker instalado.

[protegido por email]: / home / geekflare $ docker –version

Docker versão 18.09.6, compilação 481bc77

Fazendo download da imagem

Digamos que você precise extrair a imagem do Docker dockerhub (repositório do docker). O exemplo a seguir de puxar a imagem do servidor HTTP Apache.

[protegido por email]: / home / geekflare $ docker pull httpd

Usando a tag padrão: latest

mais recente: Puxando da biblioteca / httpd

f5d23c7fed46: Puxar concluído

b083c5fd185b: Puxar concluído

bf5100a89e78: Puxar concluído

98f47fcaa52f: Puxar concluído

622a9dd8cfed: Puxar concluído

Digest: sha256: 8bd76c050761610773b484e411612a31f299dbf7273763103edbda82acd73642

Status: imagem mais recente baixada para httpd: mais recente

[protegido por email]: / home / geekflare $

Imagens

Liste todas as imagens da janela de encaixe puxadas no sistema com detalhes da imagem, como TAG / ID DE IMAGEM / TAMANHO, etc..

[protegido por email]: / home / imagens do docker geekflare $

ID DE IMAGEM DE REPOSITÓRIO TAMANHO CRIADO

httpd latest ee39f68eb241 2 dias atrás 154MB

hello-world latest fce289e99eb9 há 6 meses 1.84kB

sequenceiq / hadoop-docker 2.7.0 789fa0a3b911 4 anos atrás 1.76GB

Corre

Execute a imagem da janela de encaixe mencionada no comando. Este comando criará um contêiner de docker no qual o servidor HTTP Apache será executado.

[protegido por email]: / home / geekflare $ docker executar -it -d httpd

09ca6feb6efc0578951a3e2557ed5855b2edda39a795d9703eb54d975930fe6e

O que está correndo?

ps lista todos os contêineres do docker em execução com detalhes do contêiner.

[protegido por email]: / home / geekflare $ docker ps

ID DO RECIPIENTE COMANDO DE IMAGEM NOMES DE PORTAS DE STATUS CRIADAS

09ca6feb6efc httpd               "primeiro plano httpd"   36 segundos atrás Até 33 segundos 80 / tcp suspicious_bell

Como você pode ver, o servidor Apache está sendo executado neste contêiner de janela de encaixe.

ps -a

Listar todos os contêineres do docker em execução / encerrados / parados com detalhes do contêiner.

[protegido por email]: / home / geekflare $ docker ps -a

ID DO RECIPIENTE COMANDO DE IMAGEM NOMES DE PORTAS DE STATUS CRIADAS

09ca6feb6efc httpd                            "primeiro plano httpd"       51 segundos atrás Até 49 segundos 80 / tcp suspicious_bell

2f6fb3381078 sequenceiq / hadoop-docker: 2.7.0   "/etc/bootstrap.sh -d"   2 semanas atrás Saído (137) 9 dias atrás quizzical_raman

9f397feb3a46 sequenceiq / hadoop-docker: 2.7.0   "/etc/bootstrap.sh -…"   2 semanas atrás Saiu (255) 2 semanas atrás 2122 / tcp, 8030-8033 / tcp, 8040 / tcp, 8042 / tcp, 8088 / tcp, 19888 / tcp, 49707 / tcp, 50010 / tcp, 50020 / tcp, 50070 / tcp, 50075 / tcp, 50090 / tcp determinado_ritchie

9b6343d3b5a0 olá mundo                      "/Olá"                 2 semanas atrás Saído (0) 2 semanas atrás pacific_mclean

exec

Acesse o contêiner do docker e execute comandos dentro do contêiner. Estou acessando o contêiner do servidor apache neste exemplo.

[protegido por email]: / home / geekflare $ docker exec -it 09ca6feb6efc bash

[protegido por email]: / usr / local / apache2 # ls

bin build cgi-bin conf error htdocs ícones incluem módulos de logs

[protegido por email]: / usr / local / apache2 #

Digite exit e pressione enter para sair do contêiner.

Remoção de contêiner

Remova o contêiner do docker com o ID do contêiner mencionado no comando.

[protegido por email]: / home / geekflare $ docker rm 9b6343d3b5a0

9b6343d3b5a0

Execute o comando abaixo para verificar se o contêiner foi removido ou não.

[protegido por email]: / home / geekflare $ docker ps -a

ID DO RECIPIENTE COMANDO DE IMAGEM NOMES DE PORTAS DE STATUS CRIADAS

09ca6feb6efc httpd                            "primeiro plano httpd"       Cerca de um minuto atrás Subir Cerca de um minuto 80 / tcp suspicious_bell

2f6fb3381078 sequenceiq / hadoop-docker: 2.7.0   "/etc/bootstrap.sh -d"   2 semanas atrás Saído (137) 9 dias atrás quizzical_raman

9f397feb3a46 sequenceiq / hadoop-docker: 2.7.0   "/etc/bootstrap.sh -…"   2 semanas atrás Saiu (255) 2 semanas atrás 2122 / tcp, 8030-8033 / tcp, 8040 / tcp, 8042 / tcp, 8088 / tcp, 19888 / tcp, 49707 / tcp, 50010 / tcp, 50020 / tcp, 50070 / tcp, 50075 / tcp, 50090 / tcp determinado_ritchie

Removendo imagem

Remova a imagem do docker com o ID da imagem do docker mencionado no comando

[protegido por email]: / home / geekflare $ docker rmi fce289e99eb9

Sem marcação: hello-world: mais recente

Sem marcação: [protegido por email]: 41a65640635299bab090f783209c1e3a3f11934cf7756b09cb2f1e02147c6ed8

Excluído: sha256: fce289e99eb9bca977dae136fbe2a82b6b7d4c372474c9235adc1741675f587e

Excluído: sha256: af0b15c8625bb1938f1d7b17081031f649fd14e6b233688eea3c5483994a66a3

[protegido por email]: / home / geekflare $

Reinicie o Docker

Reinicie o contêiner do docker com o ID do contêiner mencionado no comando.

[protegido por email]: / home / geekflare $ docker restart 09ca6feb6efc

09ca6feb6efc

Execute o comando abaixo e verifique o parâmetro STATUS para verificar se o contêiner foi iniciado recentemente.

[protegido por email]: / home / geekflare $ docker ps

ID DO RECIPIENTE COMANDO DE IMAGEM NOMES DE PORTAS DE STATUS CRIADAS

09ca6feb6efc httpd               "primeiro plano httpd"   6 minutos atrás Até 9 segundos 80 / tcp suspicious_bell

Parando o Docker

Pare um contêiner com o ID do contêiner mencionado no comando.

[protegido por email]: / home / geekflare $ docker stop 09ca6feb6efc

09ca6feb6efc

Execute o comando abaixo para verificar se o contêiner ainda está em execução ou parou.

[protegido por email]: / home / geekflare $ docker ps

ID DO RECIPIENTE COMANDO DE IMAGEM NOMES DE PORTAS DE STATUS CRIADAS

Iniciando o Docker

Este comando no docker inicia o contêiner do docker com o ID do contêiner mencionado no comando.

[protegido por email]: / home / geekflare $ docker start 09ca6feb6efc

09ca6feb6efc

Execute o comando abaixo para verificar se o contêiner foi iniciado ou não.

[protegido por email]: / home / geekflare $ docker ps

ID DO RECIPIENTE COMANDO DE IMAGEM NOMES DE PORTAS DE STATUS CRIADAS

09ca6feb6efc httpd               "primeiro plano httpd"   8 minutos atrás Até 3 segundos 80 / tcp suspicious_bell

Mate

Pare o contêiner do docker imediatamente. O comando Docker stop para o contêiner normalmente, essa é a diferença entre os comandos kill e stop.

[protegido por email]: / home / geekflare $ docker kill 09ca6feb6efc

09ca6feb6efc

Execute o comando abaixo para ver se o contêiner foi morto ou não.

[protegido por email]: / home / geekflare $ docker ps

ID DO RECIPIENTE COMANDO DE IMAGEM NOMES DE PORTAS DE STATUS CRIADAS

Confirmar

Salve uma nova imagem do Docker com o ID do contêiner mencionado no comando no sistema local. No exemplo abaixo, geekflare é o nome de usuário e httpd_image é o nome da imagem.

[protegido por email]: / home / geekflare $ docker commit 09ca6feb6efc geekflare / httpd_image

sha256: d1933506f4c1686ab1a1ec601b1a03a17b41decbc21d8acd893db090a09bb31c

Conecte-se

Faça login no hub do docker. Ser-lhe-á pedido que as credenciais do seu docker hub efetuem login.

[protegido por email]: / home / login do docker geekflare $

Entre com seu ID do Docker para enviar e receber imagens do Docker Hub. Se você não possui um ID do Docker, acesse https://hub.docker.com para criar um.

Nome de usuário: geekflare

Senha:

Configure um auxiliar de credencial para remover esse aviso. Vejo

https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login com êxito

Empurrar

Carregue uma imagem do docker com o nome da imagem mencionado no comando no dockerhub.

[protegido por email]: / home / geekflare $ docker push geekflare / httpd_image

O envio refere-se ao repositório [docker.io/geekflare/httpd_image]

734d9104a6a2: empurrado

635721fc6973: Montado a partir da biblioteca / httpd

bea448567d6c: Montado a partir da biblioteca / httpd

bfaa5f9c3b51: Montado a partir da biblioteca / httpd

9d542ac296cc: Montado a partir da biblioteca / httpd

d8a33133e477: Montado a partir da biblioteca / httpd

mais recente: digest: sha256: 3904662761df9d76ef04ddfa5cfab764b85e3eedaf10071cfbe2bf77254679 tamanho: 1574

Rede Docker

O comando a seguir na janela de encaixe lista os detalhes de toda a rede no cluster.

[protegido por email]: / home / geekflare $ docker network ls

ESCOPO DO CONDUTOR DO NOME DA ID DA REDE

85083e766f04 ponte local ponte

host do host f51d1f3379e0 local

5e5d9a192c00 nenhum nulo local

Existem vários outros comandos de rede do docker.

[protegido por email]: / home / rede docker geekflare $

Uso: docker network COMMAND

Gerenciar redes

Comandos:

conectar Conecte um contêiner a uma rede

criar Crie uma rede

desconectar Desconecta um contêiner de uma rede

inspecionar Exibir informações detalhadas em uma ou mais redes

ls Listar redes

remoção Remover todas as redes não utilizadas

rm Remova uma ou mais redes

Execute ‘docker network COMMAND –help’ para obter mais informações sobre um comando.

Informações do Docker

Obtenha informações detalhadas sobre o docker instalado no sistema, incluindo a versão do kernel, número de contêineres e imagens, etc..

[protegido por email]: / home / geekflare $ docker informações

Contentores: 3

Corrida: 1

Pausado: 0

Parado: 2

Imagens: 3

Versão do servidor: 18.09.6

Driver de armazenamento: overlay2

Sistema de arquivos de backup: extfs

Suporta d_type: true

Diferença de sobreposição nativa: true

Driver de log: json-file

Driver Cgroup: cgroupfs

Plugins:

Volume: local

Rede: overlay nulo macvlan do host da ponte

Log: awslogs fluentd gcplogs gelf journald arquivo json logentries locais splunk syslog

Enxame: inativo

Tempo de execução: runc

Tempo de execução padrão: runc

Binário de inicialização: docker-init

versão contém: bb71b10fd8f58240ca47fbb579b9d1028eea7c84

versão runc: 2b18fe1d885ee5083ef9f0838fee39b62d653e30

versão init: fec3683

Opções de segurança:

apparmor

seccomp

Perfil: padrão

Versão do kernel: 4.18.0-25-generic

Sistema operacional: Ubuntu 18.10

OSType: linux

Arquitetura: x86_64

CPUs: 1

Memória total: 4.982GiB

Nome: geekflare

ID: RBCP: YGAP: QG6H: B6XH: JCT2: DTI5: AYJA: M44Z: ETRP: 6TO6: OPAY: KLNJ

Dir. Raiz do Docker: / var / lib / docker

Modo de depuração (cliente): false

Modo de depuração (servidor): false

Nome de usuário: geekflare

Registro: https://index.docker.io/v1/

Marcadores:

Experimental: false

Registros inseguros:

127.0.0.0/8

Restauração ao vivo ativada: false

Licença do produto: Community Engine

Copiando arquivo

Copie um arquivo de um contêiner de docker para o sistema local.

Neste exemplo, estou copiando o arquivo httpd.pid dentro de um contêiner de docker com o ID 09ca6feb6efc para / home / geekflare /

[protegido por email]: / home / geekflare $ sudo docker cp 09ca6feb6efc: /usr/local/apache2/logs/httpd.pid / home / geekflare /

senha [sudo] para geekflare:

Execute o comando abaixo para verificar se o arquivo foi copiado ou não.

[protegido por email]: / home / geekflare $ ls

Documentos da área de trabalho exemplo examples.desktop httpd.pid nginx_new.yml nginx.yml

Verificando o histórico

Mostra o histórico de uma imagem do Docker com o nome da imagem mencionado no comando.

g[protegido por email]: / home / história do docker geekflare $ httpd

IMAGEM CRIADA CRIADA POR COMENTÁRIO DE TAMANHO

ee39f68eb241 2 dias atrás / bin / sh -c # (nop) CMD ["primeiro plano httpd"] 0B

           2 dias atrás / bin / sh -c # (nop) EXPOSE 80 0B

           2 dias atrás / bin / sh -c # (nop) Arquivo COPY: c432ff61c4993ecd… 138B

           4 dias atrás / bin / sh -c set -eux; savedAptMark ="$ (apt-m… 49,1MB

           4 dias atrás / bin / sh -c # (nop) ENV HTTPD_PATCHES = 0B

           4 dias atrás / bin / sh -c # (nop) ENV HTTPD_SHA256 = b4ca9d05… 0B

           4 dias atrás / bin / sh -c # (nop) ENV HTTPD_VERSION = 2.4.39 0B

           4 dias atrás / bin / sh -c set -eux; atualização apt-get; apt-g… 35.4MB

           4 dias atrás / bin / sh -c # (nop) WORKDIR / usr / local / apache2 0B

           4 dias atrás / bin / sh -c mkdir -p "$ HTTPD_PREFIX"  && comida… 0B

           4 dias atrás / bin / sh -c # (nop) ENV PATH = / usr / local / apach… 0B

           4 dias atrás / bin / sh -c # (nop) ENV HTTPD_PREFIX = / usr / loc… 0B

           5 dias atrás / bin / sh -c # (nop) CMD ["bater"] 0B

           5 dias atrás / bin / sh -c # (nop) ADICIONAR arquivo: 71ac26257198ecf6a… 69,2MB

Verificando logs

Mostrar os logs do contêiner de docker com o ID contido mencionado no comando.

[protegido por email]: / home / registros do docker geekflare $ 09ca6feb6efc

AH00558: httpd: Não foi possível determinar com segurança o nome de domínio totalmente qualificado do servidor, usando 172.17.0.2. Defina a diretiva ‘ServerName’ globalmente para suprimir esta mensagem

AH00558: httpd: Não foi possível determinar com segurança o nome de domínio totalmente qualificado do servidor, usando 172.17.0.2. Defina a diretiva ‘ServerName’ globalmente para suprimir esta mensagem

[Mon Jul 15 14: 01: 55.400472 2019] [mpm_event: notice] [pid 1: tid 140299791516800] AH00489: Apache / 2.4.39 (Unix) configurado – retomando as operações normais

[Mon Jul 15 14: 01: 55.400615 2019] [core: notice] [pid 1: tid 140299791516800] AH00094: Linha de comando: ‘httpd -D FOREGROUND’

[Mon Jul 15 14: 08: 36.798229 2019] [mpm_event: notice] [pid 1: tid 140299791516800] AH00491: pegou o SIGTERM, desligando

AH00558: httpd: Não foi possível determinar com segurança o nome de domínio totalmente qualificado do servidor, usando 172.17.0.2. Defina a diretiva ‘ServerName’ globalmente para suprimir esta mensagem

AH00558: httpd: Não foi possível determinar com segurança o nome de domínio totalmente qualificado do servidor, usando 172.17.0.2. Defina a diretiva ‘ServerName’ globalmente para suprimir esta mensagem

[Mon Jul 15 14: 08: 38.259870 2019] [mpm_event: notice] [pid 1: tid 139974087980160] AH00489: Apache / 2.4.39 (Unix) configurado – retomando as operações normais

[15 de julho 14 de agosto: 08: 38.260007 2019] [núcleo: aviso] [pid 1: tid 139974087980160] AH00094: Linha de comando: ‘httpd -D FOREGROUND’

[Mon Jul 15 14: 09: 01.540647 2019] [mpm_event: notice] [pid 1: tid 139974087980160] AH00491: apanhou o SIGTERM, desligando-o

AH00558: httpd: Não foi possível determinar com segurança o nome de domínio totalmente qualificado do servidor, usando 172.17.0.2. Defina a diretiva ‘ServerName’ globalmente para suprimir esta mensagem

AH00558: httpd: Não foi possível determinar com segurança o nome de domínio totalmente qualificado do servidor, usando 172.17.0.2. Defina a diretiva ‘ServerName’ globalmente para suprimir esta mensagem

[15 de julho 14: 10: 43.782606 2019] [mpm_event: notice] [pid 1: tid 140281554879616] AH00489: Apache / 2.4.39 (Unix) configurado – retomando as operações normais

[15 de julho 14: 10: 43.782737 2019] [núcleo: aviso] [pid 1: tid 140281554879616] AH00094: Linha de comando: ‘httpd -D FOREGROUND’

AH00558: httpd: Não foi possível determinar com segurança o nome de domínio totalmente qualificado do servidor, usando 172.17.0.2. Defina a diretiva ‘ServerName’ globalmente para suprimir esta mensagem

AH00558: httpd: Não foi possível determinar com segurança o nome de domínio totalmente qualificado do servidor, usando 172.17.0.2. Defina a diretiva ‘ServerName’ globalmente para suprimir esta mensagem

[Mon Jul 15 14: 14: 08.270906 2019] [mpm_event: notice] [pid 1: tid 140595254346880] AH00489: Apache / 2.4.39 (Unix) configurado – retomando as operações normais

[Mon Jul 15 14: 14: 08.272628 2019] [core: notice] [pid 1: tid 140595254346880] AH00094: Linha de comando: ‘httpd -D FOREGROUND’

Procurando imagem

Procure uma imagem do docker no dockerhub com o nome mencionado no comando.

[protegido por email]: / home / geekflare $ docker pesquisa hadoop

NOME DESCRIÇÃO STARS OFICIAL AUTOMATED

sequenceiq / hadoop-docker Uma maneira fácil de experimentar o Hadoop 611 [OK]

imagem uhopper / hadoop Base Hadoop com configuração dinâmica… 98 [OK]

harisekhon / hadoop Apache Hadoop (HDFS + Fio, tags 2.2 – 2.8) 54 [OK]

bde2020 / hadoop-namenode Nome de nó do Hadoop de um cluster do hadoop 22 [OK]

kiwenlau / hadoop Executar cluster do Hadoop em contêineres do Docker 19

izone / hadoop Hadoop 2.8.5 Ecossistema totalmente distribuído, Ju… 14 [OK]

uhopper / hadoop-namenode Hadoop namenode 9 [OK]

bde2020 / hadoop-datanode Tipo de dados Hadoop de um cluster hadoop 9 [OK]

singularidades / hadoop Apache Hadoop 8 [OK]

uhopper / hadoop-datanode Hadoop datanode 7 [OK]

harisekhon / hadoop-dev Apache Hadoop (HDFS + Fio) + Ferramentas de desenvolvimento + Gi… 6 [OK]

Atualizando configuração

Atualize as configurações do contêiner. Isso mostra todas as opções de atualização.

[protegido por email]: / home / atualização do docker geekflare $ –help

Uso: atualização da janela de encaixe [OPTIONS] CONTAINER [CONTAINER …]

Atualizar configuração de um ou mais contêineres

Opções:

–blkio-weight uint16 Bloco IO (peso relativo), entre 10 e 1000, ou 0 para desativar

(padrão 0)

–cpu-period int Limite do período do CPU CFS (Completely Fair Scheduler)

–cpu-quota int Limitar a cota de CPU CFS (Completely Fair Scheduler)

–cpu-rt-period int Limite o período de tempo real da CPU em microssegundos

–cpu-rt-runtime int Limita o tempo de execução da CPU em microssegundos

-c, –cpu-shares int compartilhamentos de CPU (peso relativo)

–cpus decimal Número de CPUs

–CPUs cpuset-cpus string nas quais permitir a execução (0-3, 0,1)

–cpuset-mems string MEMs para permitir a execução (0-3, 0,1)

–bytes de memória do kernel Limite de memória do kernel

-m, – bytes de memória Limite de memória

–bytes de reserva de memória Limite flexível de memória

–bytes de troca de memória Limite de troca igual à memória mais troca: ‘-1’ para ativar a troca ilimitada

–cadeia de reinicialização Reinicie a política a ser aplicada quando um contêiner sair

Execute o comando abaixo para atualizar a configuração da CPU do contêiner do docker com o ID do contêiner mencionado no comando.

[protegido por email]: / home / atualização do docker geekflare $ -c 1 2f6fb3381078

2f6fb3381078

Criando volume

Crie um volume que o contêiner do docker usará para armazenar dados.

[protegido por email]: / home / geekflare $ docker volume criar

7e7bc886f69bb24dbdbf19402e31102a25db91bb29c56cca3ea8b0c611fd9ad0

Execute o comando abaixo se o volume foi criado ou não.

[protegido por email]: / home / volume do docker geekflare $ ls

NOME DO VOLUME DO CONDUTOR

local 7e7bc886f69bb24dbdbf19402e31102a25db91bb29c56cca3ea8b0c611fd9ad0

Instalando o plugin

Instale um plug-in docker vieux / sshfs com o ambiente de depuração definido como 1.

[protegido por email]: / home / geekflare $ plugin docker instala vieux / sshfs DEBUG = 1

Plugar "vieux / sshfs" está solicitando os seguintes privilégios:

– rede: [host]

– mount: [/ var / lib / docker / plugins /]

– montagem: []

– dispositivo: [/ dev / fuse]

– recursos: [CAP_SYS_ADMIN]

Você concede as permissões acima? [s / N] y

mais recente: Puxando do vieux / sshfs

52d435ada6a4: Download concluído

Digest: sha256: 1d3c3e42c12138da5ef7873b97f7f32cf99fb6edde75fa4f0bcf9ed277855811

Status: imagem mais recente baixada para vieux / sshfs: mais recente

Plugin instalado vieux / sshfs

Execute o comando abaixo para listar os plugins do docker.

[protegido por email]: / home / geekflare $ plugin do docker ls

ID NOME DESCRIÇÃO ATIVADA

2a32d1fb95af vieux / sshfs: o mais recente plug-in sshFS para o Docker true

Sair

Desconectando do dockerhub.

[protegido por email]: / home / geekflare $ janela de encaixe

Removendo credenciais de login para https://index.docker.io/v1/

Conclusão

Espero que você tenha um entendimento justo dos comandos do docker até agora. Experimente esses comandos em seu ambiente de desenvolvimento ou laboratório para praticar e aprender.

Se você estiver interessado em aprender Docker e Kubernetes, confira este curso online.

TAG:

  • Docker

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map