O Docker é uma plataforma de código aberto muito popular para desenvolvedores e administradores de sistemas construírem, executarem e compartilharem aplicações com containers. A containerização (o uso de containers para implantar aplicações) está se tornando popular porque os containers são flexíveis, leves, portáteis, fracamente acoplados, escaláveis e mais seguros.
Este artigo é um bom ponto de partida para iniciantes aprenderem como instalar e usar o Docker em um sistema Linux Ubuntu 20.04 com alguns comandos básicos. Para este guia, vamos instalar o Docker Community Edition (CE).
Pré-requisitos:
Instalando o Docker no Ubuntu 20.04
Para usar a versão mais recente do Docker, vamos instalá-lo a partir do repositório oficial do Docker. Portanto, comece adicionando a chave GPG para o repositório oficial do Docker ao seu sistema, depois adicione a configuração do repositório à fonte APT com os seguintes comandos.
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - $ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable"
Agora atualize o cache de pacotes APT para incluir os novos pacotes do Docker no sistema usando o seguinte comando.
$ sudo apt update
Em seguida, instale o pacote Docker conforme mostrado.
$ sudo apt install docker-ce

Durante o processo de instalação do pacote Docker, o instalador do pacote aciona o systemd (gerenciador de sistema e serviços) para iniciar e habilitar automaticamente o serviço do docker. Use os seguintes comandos para confirmar que o serviço do docker está ativo e habilitado para iniciar automaticamente na inicialização do sistema. Além disso, verifique seu status:
$ sudo systemctl is-active docker $ sudo systemctl is-enabled docker $ sudo systemctl status docker

Existem vários outros comandos systemctl para gerenciar e controlar o serviço docker, que incluem o seguinte:
$ sudo systemctl stop docker #stop the docker service $ sudo systemctl start docker #start the docker service $ sudo systemctl restart docker #restart the docker service
Para verificar a versão do Docker CE instalado no seu sistema, execute o seguinte comando:
$ docker version

Você pode visualizar os comandos de uso do docker disponíveis executando o comando docker sem opções ou argumentos:
$ docker

Gerencie o Docker como um usuário não-root com o comando sudo
Por padrão, o daemon do Docker se vincula a um soquete UNIX (em vez de uma porta TCP) que é de propriedade do usuário root. Portanto, o daemon do Docker sempre é executado como usuário root e para executar o comando docker, você precisa usar o sudo.
Além disso, durante a instalação do pacote Docker, é criado um grupo chamado docker
. Quando o daemon do Docker é iniciado, ele cria um soquete UNIX acessível pelos membros do grupo docker (o que concede privilégios equivalentes ao usuário root).
Para executar o comando docker sem sudo, adicione todos os usuários não-root que devem acessar o docker no grupo docker da seguinte forma. Neste exemplo, o comando adiciona o usuário atualmente conectado ($USER)
ou nome de usuário ao grupo docker:
$ sudo usermod -aG docker $USER OR $ sudo usermod -aG docker username
Para ativar as alterações nos grupos, execute o seguinte comando:
$ newgrp docker $ groups

Verifique se consegue executar comandos docker sem sudo. O seguinte comando faz o download de uma imagem de teste e a executa em um contêiner. Uma vez que o contêiner está em execução, ele imprime uma mensagem informativa e sai. Esta é também outra maneira de verificar se sua instalação está funcionando corretamente.
$ docker run hello-world

Trabalhando com Imagens Docker
A Docker image is a read-only template file with instructions for creating a Docker container. You can either create your custom images or you can only use those created by others and published in the Docker Hub, the world’s largest library and community for container images.
Você pode procurar por uma imagem centos
no Docker Hub com o seguinte comando:
$ docker search centos

Para baixar uma imagem localmente, use o comando pull. Este exemplo mostra como baixar a imagem oficial do centos.
$ docker pull centos

Uma vez que o download estiver completo, você pode listar as imagens disponíveis em seu sistema local.
$ docker images

Se você não precisar mais de uma imagem, pode removê-la do seu sistema.
$ docker rmi centos OR $ docker rmi centos:latest #where latest is the tag
Executando e Gerenciando Contêineres Docker
A Docker container is a process that runs natively on Linux and shares the kernel of the host machine with other containers. Concerning a Docker image, a container is just a running image.
Para iniciar um contêiner com base na sua nova imagem centos
, execute o seguinte comando onde “centos”
é o nome da imagem local e “cat /etc/centos-release” é o comando a ser executado no contêiner:
$ docker run centos cat /etc/centos-release

A container runs a discrete process that is isolated in that it has its own: file system, networking, and isolated process tree separate from the host. Note that you can manipulate a container using the container’s ID, ID-prefix, or name as shown below. The above container process exits after the command runs.
Para listar os contêineres Docker, use o comando docker ps da seguinte forma. Use a bandeira -l
para mostrar o contêiner criado mais recentemente em todos os estados:
$ docker ps OR $ docker ps -l

Para mostrar todos os contêineres, incluindo aqueles que saíram, use a bandeira -a
.
$ docker ps -a

Você também pode iniciar um contêiner usando seu ID de contêiner após ele ter saído. Por exemplo, no comando anterior, nosso ID de contêiner é 94c35e616b91. Podemos iniciar o contêiner conforme mostrado (observe que ele executará o comando e sairá):
$ docker start 94c35e616b91

Para parar um contêiner em execução usando o seu ID, utilize o comando stop conforme mostrado.
$ docker stop 94c35e616b91
O Docker também permite atribuir um nome a um contêiner usando a opção --name
ao executá-lo.
$ docker run --name my_test centos cat /etc/centos-release $ docker ps -l

Agora você pode utilizar o nome do contêiner para gerenciá-lo (iniciar, parar, verificar status, remover, etc.):
$ docker stop my_test $ docker start my_test $ docker stats my_test $ docker rm my_test
Executando uma Sessão Interativa em um Contêiner Docker
Para iniciar uma sessão de shell interativa em um contêiner para executar comandos dentro dele, execute o seguinte comando:
$ docker run --name my_test -it centos

No comando acima, os switches -it
indicam ao Docker alocar um pseudo-TTY conectado ao stdin do contêiner, criando assim um shell bash interativo no contêiner.
Você pode sair emitindo o comando de saída conforme mostrado.
# exit
Se preferir não sair, você pode se desanexar de um contêiner e deixá-lo em execução. Para fazer isso, utilize a sequência de teclas CTRL+p
e depois CTRL+q
.

Você pode se reconectar ao contêiner usando o comando attach, que irá anexar a entrada, saída e erros padrão locais ao contêiner em execução:
$ docker attach my_test
Além disso, você pode iniciar um contêiner no modo de desanexação usando a flag -d
. Em seguida, utilize o comando attach para anexar a entrada, saída e erros padrão do terminal ao contêiner em execução:
$ docker run --name my_test -d -it centos $ docker attach my_test

Por último, mas não menos importante, você pode parar um contêiner em execução a partir da sessão do host executando o seguinte comando:
$ docker kill my_test
Isso é tudo! Neste guia, cobrimos como instalar e usar o Docker CE no Linux Ubuntu 20.04. Se tiver alguma dúvida, use o formulário de feedback abaixo para nos perguntar.