Docker de aprendizagem, parte 5: comandos

A parte de hoje da série Docker, que estamos publicando, é dedicada às equipes do Docker. A documentação do Docker contém uma descrição detalhada de muitos comandos, mas alguém que está começando a trabalhar com esta plataforma pode se perder neles, então aqui estão quase duas dúzias dos comandos mais importantes para trabalhar com o Docker. Continuando a tradição estabelecida, compararemos equipes com uma dispersão de bagas.

Parte 1: o básico
Parte 2: termos e conceitos
Parte 3: arquivos Dockerfile
Parte 4: reduzindo o tamanho das imagens e acelerando sua montagem
Parte 5: equipes
Parte 6: trabalhando com dados


Revisão


Lembremos que as imagens do Docker são criadas com base nos arquivos do Dockerfile que descrevem tudo o que é necessário para criar imagens. Além disso, não devemos esquecer que o contêiner é uma imagem do Docker chamada à vida. Para usar efetivamente os comandos do Docker, primeiro você precisa descobrir - com o que está lidando - com a imagem ou com o contêiner. Se você pensar em imagens e contêineres, poderá ver que uma imagem do Docker pode existir ou não. O mesmo pode ser dito para os contêineres do Docker. Além disso, um contêiner do Docker existente pode estar em um estado operacional ou em um estado inativo.

Depois de descobrir com o que exatamente você precisa trabalhar, poderá encontrar a equipe certa.

Visão geral do comando do Docker


Aqui estão algumas coisas que as pessoas que desejam trabalhar com o Docker devem saber:

  • Os comandos da interface da linha de comandos do Docker usados ​​para controlar algo começam com a palavra-chave do docker seguida por um espaço; depois, há uma indicação do direcionamento de um determinado comando, outro espaço e, a seguir, o próprio comando. Por exemplo, é assim que esse comando é construído: docker container stop .
  • Se o comando for direcionado para uma imagem ou contêiner específico, o nome ou identificador dessa imagem ou contêiner será usado nele.

Por exemplo, o docker container run my_app do docker container run my_app é um comando para criar e executar um contêiner chamado my_app . Nos exemplos abaixo, chamaremos my_container , images my_image , tags my_tag e assim por diante.

Primeiro, consideraremos a equipe em si, depois as bandeiras que podem ser usadas com ela, se essas bandeiras existirem. Se a bandeira tiver dois traços na frente, essa é sua forma completa. Uma bandeira com um traço é uma versão abreviada de uma determinada bandeira. Eles agem da mesma maneira. Por exemplo, -p é uma forma abreviada do sinalizador --port .

O objetivo deste artigo é fornecer uma visão geral dos comandos do Docker. Assim, você, tendo uma idéia geral deles e conhecendo os recursos da plataforma disponíveis graças a esses comandos, pode, se necessário, encontrar informações detalhadas sobre eles. As equipes em questão são testadas no sistema operacional da família Linux usando o mecanismo Docker versão 18.09.1 ​​e API versão 1.39.

Uma observação sobre os comandos suportados pelo Docker CLI 1.13


A interface da linha de comandos do Docker versão 1.13 fornece comandos atualizados e agrupados logicamente. Ao mesmo tempo, equipes antigas ainda funcionam, mas é mais fácil usar novas, principalmente para iniciantes. É, por exemplo, que na versão 1.12 um comando do docker create formulários docker create e na versão 1.13 o docker container create comandos docker container create tornou-se disponível. Informações sobre como combinar equipes antigas e novas podem ser encontradas aqui .

Primeiro, examinamos os comandos para gerenciar contêineres, depois discutimos o gerenciamento de imagens.

Comandos de gerenciamento de contêiner


O esquema de comando geral para gerenciar contêineres é o seguinte:

 docker container my_command 

Aqui estão os comandos que podem ser substituídos onde usamos my_command :

  • create - cria um contêiner a partir de uma imagem.
  • start - inicia um contêiner existente.
  • run - crie um contêiner e inicie-o.
  • ls - lista de contêineres em execução.
  • inspect - exibe informações detalhadas sobre o contêiner.
  • logs - saída de log.
  • stop - para o contêiner em execução enviando o sinal SIGTERM para o processo principal do contêiner e, após algum tempo, o SIGKILL .
  • kill - interrompa o contêiner em execução e envie o sinal SIGKILL para o processo principal do contêiner.
  • rm - exclua um contêiner parado.

Comandos de gerenciamento de imagem


Para gerenciamento de imagem, são utilizados comandos que se parecem com isso:

 docker image my_command 

Aqui estão algumas das equipes deste grupo:

  • build - construa a imagem.
  • push - envia a imagem para o registro remoto.
  • ls - lista de imagens.
  • history - exibe informações sobre as camadas da imagem.
  • inspect - exibe informações detalhadas sobre a imagem, incluindo informações sobre as camadas.
  • rm - exclua a imagem.

Equipes diferentes


  • docker version - docker version informações da docker version do cliente e do servidor do Docker.
  • docker login - entrada do registro do Docker.
  • docker system prune - exclua contêineres, redes e imagens não utilizados que não recebem um nome e uma tag.

Agora considere esses comandos com mais detalhes.

Contentores


▍ Início da existência do contêiner


No estágio inicial de trabalho com contêineres, os comandos create , start e run são usados. Eles são usados, respectivamente, para criar um contêiner, iniciá-lo e criá-lo e iniciá-lo.

Aqui está o comando para criar um contêiner a partir de uma imagem:

 docker container create my_repo/my_image:my_tag 

Nos exemplos a seguir, a construção my_repo/my_image:my_tag será reduzida para my_image .
O comando create aceita muitos sinalizadores . Por exemplo, ele pode ser escrito no seguinte formato:

 docker container create -a STDIN my_image 

O sinalizador -a é uma forma abreviada do sinalizador --attach . Este sinalizador permite conectar o contêiner a STDIN , STDOUT ou STDERR .

Após a criação do contêiner, ele pode ser iniciado com o seguinte comando:

 docker container start my_container 

Observe que você pode consultar o contêiner no comando usando seu ID ou nome.

Agora dê uma olhada no comando que permite criar e executar o contêiner:

 docker container run my_image 

Este comando também é capaz de aceitar muitos argumentos de linha de comando. Considere alguns deles com um exemplo dessa construção:

 docker container run -i -t -p 1000:8000 --rm my_image 

O sinalizador -i é a abreviação de --interactive . Graças a esse sinalizador, o fluxo STDIN é mantido aberto, mesmo que o contêiner não esteja conectado ao STDIN .

O sinalizador -t é abreviação de --tty . Graças a essa bandeira, é destacado um pseudo-terminal que conecta o terminal usado aos fluxos STDIN e STDOUT do contêiner.

Para poder interagir com o contêiner através do terminal, você precisa usar os sinalizadores -i e -t juntos.

O sinalizador -p é abreviação de --port . Uma porta é uma interface através da qual um contêiner interage com o mundo externo. O Design 1000:8000 redireciona a porta do Docker 8000 para a porta 1000 computador no qual o contêiner está em execução. Se um determinado aplicativo estiver em execução no contêiner que pode gerar algo para o navegador, para acessá-lo, no nosso caso, você pode acessar o navegador em localhost:1000 .

O sinalizador --rm exclui automaticamente o contêiner após sua conclusão.

Vejamos mais alguns exemplos do comando run :

 docker container run -it my_image my_command 

Nesse projeto, o comando sh pode ser usado, o que criará uma sessão de terminal em um contêiner que pode ser interagido através do seu terminal. Ao trabalhar com imagens baseadas no Alpine, é melhor focar no uso de sh do que no bash , pois nessas imagens, por padrão, o bash do bash não bash instalado. Para sair da sessão interativa, use o exit .

Observe que aqui combinamos os sinalizadores -i e -t em -it .

Aqui está outro exemplo de trabalho com o comando run :

 docker container run -d my_image 

O sinalizador -d é abreviação de --detach . Este comando inicia o contêiner em segundo plano. Isso permite que você use o terminal a partir do qual o contêiner é iniciado para executar outros comandos enquanto o contêiner estiver em execução.

StatusConfirmando o status do contêiner


Se você estiver executando contêineres do Docker e quiser saber o que são esses contêineres, será necessário listá-los. Você pode fazer isso com o seguinte comando:

 docker container ls 

Este comando exibe uma lista de contêineres em execução e fornece a essa lista algumas informações úteis sobre eles. Aqui está outro exemplo deste comando:

 docker container ls -a -s 

A opção -a deste comando é abreviação de --all . Usando essa chave, você pode exibir informações sobre todos os contêineres, e não apenas sobre os que estão em execução.

A -s é uma abreviação de --size . Permite exibir as dimensões dos contêineres.

Aqui está um comando que exibe informações detalhadas sobre o contêiner:

 docker container inspect my_container 

Aqui está o comando que exibe os logs do contêiner:

 docker container logs my_container 

▍ Desligamento do contêiner


Às vezes, um contêiner de trabalho precisa ser parado. Para fazer isso, use o seguinte comando:

 docker container stop my_container 

Ele permite que você pare de executar contêineres, permitindo que eles sejam desligados corretamente. O contêiner tem, por padrão, 10 segundos para desligar.

Se o contêiner precisar ser parado rapidamente, sem se preocupar com a conclusão correta de seu trabalho, você poderá usar o seguinte comando:

 docker container kill my_container 

O comando kill , se você comparar o contêiner de trabalho com a TV ligada, será semelhante a desligar a TV desconectando-a da eletricidade. Portanto, na maioria das situações, é recomendável usar o comando stop para parar contêineres.

Aqui está um comando que permite parar rapidamente todos os contêineres em execução:

 docker container kill $(docker ps -q) 

Para excluir um contêiner parado, você pode usar o seguinte comando:

 docker container rm my_container 

Aqui está um comando que permite excluir todos os contêineres que não foram executados no momento da chamada deste comando:

 docker container rm $(docker ps -a -q) 

Para resumir esta seção. Primeiro, um contêiner é criado, depois é iniciado ou essas duas etapas são combinadas usando um comando da docker run my_container . Depois disso, o aplicativo em contêiner é iniciado.

Em seguida, o contêiner é parado com o docker stop my_container . Para remover o contêiner, use o docker rm my_container .

Agora vamos falar sobre os comandos usados ​​para trabalhar com imagens, com os próprios modelos a partir dos quais os contêineres são criados.

As imagens


ReatCriar imagens


Aqui está um comando que permite coletar imagens do Docker:

 docker image build -t my_repo/my_image:my_tag . 

Nesse caso, uma imagem é criada com o nome my_image ; durante sua montagem, o arquivo Dockerfile localizado no caminho ou URL especificado é usado.

O sinalizador -t é a abreviação de --tag . Ele informa ao Docker que a imagem a ser criada deve receber a tag fornecida no comando. Nesse caso, é my_tag .

O ponto no final do comando indica que a imagem deve ser coletada usando o arquivo Dockerfile localizado no diretório de trabalho atual.

Depois que a imagem é montada, ela pode ser enviada para o registro remoto. Graças a isso, outras pessoas poderão usá-lo, ele pode ser baixado e executado em outro computador. Suponha que você queira usar o Docker Hub . Nesse caso, você precisará criar uma conta lá. O uso deste recurso é gratuito.

Depois de se inscrever no Docker Hub, é necessário fazer login. E embora o comando usado para isso não se aplique diretamente aos comandos destinados ao trabalho com imagens, será útil considerá-lo aqui. Este é o seguinte comando:

 docker login 

Ele permite que você efetue login na sua conta do Docker Hub. Para fazer login, você precisará digitar um nome de usuário e senha.

Após o login, você pode enviar imagens para o registro. É feito assim:

 docker image push my_repo/my_image:my_tag 

Agora que você possui vários tipos de imagens, pode explorá-las usando comandos especiais.

Research Pesquisa de imagem


Aqui está o comando que exibe uma lista de imagens, incluindo informações sobre seu tamanho:

 docker image ls 

O comando a seguir permite exibir informações sobre as imagens intermediárias que compõem a imagem, em particular dados sobre seus tamanhos e como elas foram criadas:

 docker image history my_image 

Aqui está o comando que exibe informações detalhadas sobre a imagem, incluindo dados sobre as camadas que compõem a imagem:

 docker image inspect my_image 

Se você criar tantas imagens, pode ser que algumas delas precisem ser excluídas.

ImagesExcluir imagens


Aqui está o comando que permite excluir a imagem especificada:

 docker image rm my_image 

Se a imagem estiver armazenada em um repositório remoto, ela não será excluída a partir daí.

Aqui está um comando que permite excluir todas as imagens locais:

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

Use este comando com cautela, mas observe que, quando usado, as imagens armazenadas no repositório remoto não serão excluídas. Este é um dos benefícios de armazenar imagens em repositórios.

Examinamos os comandos básicos usados ​​para gerenciar contêineres e imagens. Agora vamos falar sobre mais algumas equipes.

Equipes diferentes


Aqui está o comando que exibe informações de versão para o cliente e servidor do Docker:

 docker version 

Este comando, já conhecido por você, é usado para entrar no registro do Docker:

 docker login 

Este comando permite excluir contêineres, redes e imagens não utilizados que não recebem um nome e uma tag :

 docker system prune 

Aqui está um exemplo de seu uso:

 docker system prune -a --volumes 

A opção -a é uma abreviação de --all , permite excluir imagens não utilizadas, e não apenas aquelas que não recebem um nome e uma tag.

A --volumes permite excluir volumes não utilizados.

Sumário


Neste artigo, abordamos os comandos úteis do Docker. Se você está apenas começando a trabalhar com o Docker, preste atenção nos três comandos mais importantes a seguir:

Crie e execute um contêiner:

 docker container run my_image 

Criar imagem:

 docker image build -t my_repo/my_image:my_tag . 

Fazendo upload da imagem em um repositório remoto:

 docker image push my_repo/my_image:my_tag 

Para obter ajuda sobre os comandos do Docker, você pode executar o comando do docker no terminal. Aqui você pode encontrar ajuda na interface da linha de comandos do Docker.

Da próxima vez, falaremos sobre como trabalhar com dados no Docker.

Caros leitores! Se você trabalha com o Docker, provavelmente possui sua própria lista de comandos usados ​​com freqüência. Se sim, compartilhe esta lista.

Source: https://habr.com/ru/post/pt440660/


All Articles