Introdução
Docker é uma plataforma que torna a execução e o gerenciamento de processos de aplicativos em contêineres mais fácil. Ela fornece uma maneira de separar seus aplicativos da sua infraestrutura. Os contêineres são muito semelhantes a máquinas virtuais, mas são mais portáteis, eficientes e fáceis de usar. Existem várias maneiras de instalar o Docker em Linux distribuições. A maneira mais popular e fácil de instalar o Docker no sistema operacional existente é usando comandos yum.
Este tutorial demonstrará como você pode configurar e usar o Docker no CentOS 7 em alguns passos simples.
Pré-requisitos:
- 64-bit Instância do CentOS 7.
- Um usuário não root com privilégios sudo.
Todos os comandos que você executar ao longo deste tutorial são executados como um usuário não root e, se necessário, o acesso root será fornecido usando a palavra-chave sudo.
Passo 1: Configurando o Docker na Instância CentOS 7
O repositório oficial do CentOS 7 pode não ter o pacote de instalação mais recente para o Docker. Nesta seção, você instalará a versão mais recente do Docker a partir do repositório oficial do Docker. Primeiro, você precisa atualizar o banco de dados de pacotes usando:
|
1 |
sudo yum check-update |
Após a conclusão da etapa de atualização, execute o comando abaixo para baixar e instalar a versão mais recente do Docker:
|
1 |
curl -fsSL https://get.docker.com/ | sh |
O Docker agora está instalado, portanto você pode iniciar o daemon do Docker executando o comando abaixo:
|
1 |
sudo systemctl start docker |
Para verificar se o daemon do Docker está em execução, digite o seguinte:
|
1 |
sudo systemctl status docker |
A saída do comando systemctl status deve ser semelhante à saída compartilhada abaixo, que mostra que ele está em execução:
|
1 2 3 4 5 6 |
Saída: ● docker.service - Docker Aplicação Contêiner Mecanismo Carregado: carregado (/usr/lib/systemd/system/docker.service; desativado; fornecedor predefinição: desativado) Ativo: ativo (em execução) desde Qua 2021-02-17 18:22:06 UTC; 10s atrás Docs: https://docs.docker.com Principal PID: 21884 (dockerd) |
Finalmente, para garantir que o Docker seja iniciado ao reiniciar a sua máquina, use o comando:
|
1 |
sudo systemctl enable docker |
A instalação do Docker fornece a você o serviço Docker, bem como o utilitário cliente (cliente de linha de comando do Docker). Nas próximas seções do tutorial, você poderá praticar mais usando os comandos do Docker.
Você também pode dar uma olhada no nosso tutorial detalhado sobre como instalar & operar o Docker no Ubuntu na nuvem pública.
Passo 2: Usando comandos do Docker sem o prefixo Sudo
Os comandos do Docker precisam de privilégios de root para serem executados. Portanto, se você quiser executar os comandos, terá que prefixá-los com sudo. Durante a instalação, um grupo Docker é criado por padrão. Se você adicionar um usuário ao grupo, poderá executar os comandos do Docker sem sudo. Tentar executar comandos do Docker sem sudo ou adicionar o usuário ao grupo resultará em uma saída semelhante à abaixo:
|
1 2 3 |
Saída: docker: Não é possível conectar a o Docker daemon. Está o docker daemon em execução em este host?. Consulte 'docker run --help'. |
Adicionar seu nome de usuário ao grupo Docker garantirá que você não precise usar sudo para executar os comandos do Docker:
|
1 |
sudo usermod -aG docker $(whoami) |
Para adicionar outro usuário ao grupo Docker, você pode simplesmente substituir o nome de usuário no comando:
|
1 |
sudo usermod -aG docker nome de usuário |
Para o restante deste guia, assumiremos que todos os comandos são executados por um usuário no grupo de usuários do Docker. Se este não for o caso, você poderá usar o prefixo sudo com os comandos.
Passo 3: Executando os Comandos do Docker
Agora que você tem o Docker instalado e em execução, vamos dar uma olhada em alguns comandos para se familiarizar com o utilitário de linha de comando do Docker. Os comandos do Docker geralmente assumem a forma de:
|
1 |
docker [opção] [comando] [argumentos] |
Para encontrar todos os subcomandos disponíveis, você deve usar:
|
1 |
docker |
A partir de Docker 20.10.3, a lista completa de subcomandos disponíveis inclui:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
Saída: attach Anexar fluxos padrão de entrada, , saída, e erro locais a um container em execução build Construir uma imagem a partir de um Dockerfile commit Criar uma nova imagem a partir das alterações de um container cp Copiar arquivos/pastas entre um container e o sistema de arquivos local create Criar um novo container diff Inspecionar alterações em arquivos ou diretórios no sistema de arquivos de um container events Obter eventos em tempo real do the servidor exec Executar um comando em um container em execução export Exportar o sistema de arquivos'do container como um arquivo tar history Exibir o histórico de uma imagem images Listar imagens import Importar o conteúdo de um tarball para criar uma imagem de sistema de arquivos info Exibir informações -globais do sistema inspect Retornar informações-de baixo nível sobre objetos Docker kill Matar um ou mais containers em execução load Carregar uma imagem de um arquivo tar ou STDIN login Fazer login em um registro Docker logout Fazer logout de um registro Docker logs Obter os logs de um container pause Pausar todos os processos dentro de um ou mais containers port Listar os mapeamentos de porta ou um mapeamento específico para o container ps Listar containers pull Baixar uma imagem ou um repositório de um registro push Enviar uma imagem ou um repositório para um registro rename Renomear um contêiner restart Reiniciar um ou mais contêineres rm Remover um ou mais contêineres rmi Remover uma ou mais imagens run Executar um comando em um novo contêiner save Salvar uma ou mais imagens para um tar arquivo (transmitido para STDOUT por padrão) search Buscar o Docker Hub por imagens start Iniciar um ou mais parados contêineres stats Exibir um fluxo em tempo real de recursos (dos ) contêineres estatísticas de uso stop Parar um ou mais contêineres em execução tag Criar uma tag TARGET_IMAGE que se refere a SOURCE_IMAGE top Exibir os processos em execução de um contêiner unpause Retomar todos os processos dentro de um ou mais contêineres update Atualizar a configuração de um ou mais contêineres version Exibir as informações de versão do Docker wait Bloquear até que um ou mais contêineres parem, então exibir seus códigos de saída |
Você pode usar a flag –help com um comando específico para obter mais informações sobre ele:
|
1 |
docker subcomando --help |
Para obter informações detalhadas sobre o sistema, use:
|
1 |
docker info |
Passo 4: Trabalhando com Imagens Docker
As imagens Docker podem ser chamadas de modelo para contêineres Docker. Essas imagens geralmente são baixadas do Docker Hub, que é um registro gerenciado pelo projeto Docker. Qualquer pessoa pode criar e enviar suas imagens para o Docker Hub. Como resultado, você pode encontrar facilmente uma grande variedade de aplicativos e distribuições de SO no registro. Vamos experimentar um programa simples que confirmará o acesso ao Docker Hub:
|
1 |
docker run hello-world |
Você deve obter uma saída como a abaixo, que mostra que o Docker está funcionando:
|
1 2 3 4 |
Saída: Olá do Docker! Esta mensagem mostra que sua instalação parece estar a funcionar corretamente. ... |
Você pode encontrar várias imagens Docker no Docker Hub usando o comando de busca. Por exemplo, veja o comando abaixo para buscar uma imagem CentOS:
|
1 |
docker search centos |
A consulta de busca exibirá uma lista de todas as imagens que correspondem à substring. No seu caso, o resultado deve ser parecido com:
|
1 2 3 4 5 6 7 8 |
Saída: NOME DESCRIÇÃO ESTRELAS OFICIAL AUTOMATIZADO centos A oficial compilação do CentOS. 6410 [OK] ansible/centos7-ansible Ansible no Centos7 132 [OK] consol/centos-xfce-vnc   Centos container com "headless" VNC sess… 125 [OK] jdeathe/centos-ssh OpenSSH / Supervisor / EPEL/IUS/SCL Repos… 117 [OK] centos/systemd systemd habilitado base container. 96 [OK] ... |
Nos resultados da pesquisa, existem diferentes colunas que descrevem informações sobre a imagem. O OK na coluna OFFICIAL determina que a imagem foi criada e é suportada pela empresa por trás do aplicativo. Depois de finalizar a imagem, você pode baixá-la para a sua máquina local usando o comando Docker pull:
|
1 |
docker pull centos |
Depois de baixar a imagem, você pode executar o container usando o comando Docker run. Se você tentar executar diretamente uma imagem sem o download prévio, o Docker baixará a imagem e executará o container depois:
|
1 |
docker run centos |
Você pode listar as imagens baixadas na sua máquina local usando o comando abaixo:
|
1 |
docker images |
Você deve obter uma saída semelhante:
|
1 2 3 4 |
Saída: REPOSITÓRIO TAG IMAGEM ID CRIADO TAMANHO centos latest 300e315adb2f 2 meses atrás 209MB olá-mundo mais recente bf756fb1ae65 13 meses atrás 13.3kB |
Mais tarde neste tutorial, você poderá modificar as imagens para executar os containers. Estas novas imagens podem ser adicionadas ou enviadas para o Docker Hub e outros registros que hospedam as imagens Docker.
Passo 5: Executando um Container Interativamente
Existem diferentes tipos de containers. O container hello-world que você executou no Passo4 é um tipo de contêiner que executa e sai após imprimir uma mensagem. Outro tipo de contêiner é o interativo. Você pode usar contêineres interativos de maneira semelhante a uma máquina virtual.
Vamos criar um contêiner a partir da imagem mais recente do CentOS. O uso das flags -i e -t no comando Docker run dará acesso interativo ao contêiner CentOS:
|
1 |
docker run -it centos |
O prompt de comando mudará e deverá se parecer com a saída abaixo:
|
1 2 |
Saída: [root@3ce69d2a35b9 /]# |
|
1 |
Nota: O contêiner id exibido no the prompt de comando é único e ele será útil in handy mais tarde, no the exemplo ele é 3ce69d2a35b9. |
Agora, qualquer comando que você executar será executado dentro do contêiner. Isso é semelhante a executar um comando em uma máquina virtual. Vamos tentar instalar o servidor MySQL no contêiner CentOS. Você pode fazer isso usando:
|
1 |
yum install mysql |
Passo 6: Fazendo commit de alterações em um contêiner para uma imagem Docker
Após iniciar o container, você pode realizar todas as operações que são possíveis em uma máquina virtual semelhante, como criar/modificar os arquivos ou configurar um app. Por favor, note que essas alterações permanecerão apenas para esse container e, após você destruir o container, as alterações que fez serão perdidas.
Nesta parte do tutorial, você aprenderá a criar uma nova imagem Docker a partir de um container com as alterações que realizou. Após Passo5 você tem um contêiner CentOS em execução com o servidor MySQL instalado. Este contêiner agora é diferente da imagem CentOS pura. Você pode salvar este estado do contêiner para uso posterior. Primeiro, você precisa sair do contêiner usando:
|
1 |
exit |
Faça o commit das alterações que você fez no contêiner para uma nova imagem Docker usando o comando abaixo:
|
1 |
docker commit -m "Alterações feitas na imagem" -a "Nome do Autor" contêiner-id repositório/novo_nome_da_imagem |
No comando, -m refere-se à mensagem de commit e deve basicamente indicar as alterações feitas, a tag -a é usada para mencionar o autor. O container-id é o do Passo 5, que você obteve após executar o contêiner em modo interativo e, geralmente, o repositório é o seu nome de usuário do Docker Hub. Por exemplo:
|
1 |
docker commit -m "adicionado mysql-server" -a "CloudSigma" 59839a1b7de2 finid/centos-mariadb |
|
1 |
Nota: Após a nova imagem ser comitada ela é salva no seu sistema. Nas the próximas etapas deste this tutorial, você irá aprender como fazer push de uma imagem para o Docker Hub e em the registros semelhantes que hospedam imagens docker. Assim que sua imagem for enviada para o registro, ela pode ser acessada por outros também well. |
Agora que a imagem foi comitada, o comando Docker images deve listar a nova imagem, bem como as antigas:
|
1 |
docker images |
A saída do comando deve ser semelhante à mostrada abaixo:
|
1 2 3 4 5 |
Saída: REPOSITÓRIO TAG IMAGEM ID CRIADO TAMANHO cloudsigma23/centos-mysql latest 1b9368efea70 13 segundos atrás 308MB centos latest 300e315adb2f 2 meses atrás 209MB olá-mundo mais recente bf756fb1ae65 13 meses atrás 13.3kB |
Como visto no exemplo, uma nova imagem centos-mysql é criada usando a imagem CentOS do Docker Hub. A diferença no tamanho determina que algumas alterações foram feitas. Neste exemplo, foi a adição do servidor MySQL no contêiner. Da próxima vez que você precisar de um contêiner com um servidor MySQL, você pode simplesmente executar a nova imagem, e voilà! Você tem um contêiner CentOS com um servidor MySQL pré-instalado em execução.
Passo 7: Gerenciando Contêineres Docker
Agora que você está familiarizado com o Docker, após usá-lo por algum tempo, você já tem alguns contêineres em execução e alguns inativos. Para obter a lista de contêineres ativos, você deve usar:
|
1 |
docker ps |
Você deve ver uma saída semelhante:
|
1 2 3 |
Saída: CONTAINER ID IMAGE COMMAND CRIADO STATUS PORTAS NOMES 604c889cf404 centos "/bin/bash" 20 minutos atrás Ativo 20 minutos intelligent_easley |
Para listar tanto os contêineres ativos quanto os inativos, você deve usar a flag -a com o comando:
|
1 |
docker ps -a |
Para encontrar o último contêiner que você criou, você pode fornecer a flag -l:
|
1 |
docker ps -l |
Para parar um contêiner em execução/ativo, execute um comando simples:
|
1 |
docker stop container-id |
Você pode encontrar o container-id na saída do comando Docker ps.
Passo 8: Publicando as Imagens em um Repositório
O próximo passo após criar a nova imagem é compartilhá-la com seus amigos. Você também pode disponibilizá-la para o mundo inteiro usando o Docker Hub ou qualquer outro registro. É necessário fazer login no respectivo registro antes de fazer o push da imagem.
Na próxima parte do tutorial, você aprenderá a fazer push das imagens para o Docker Hub. Primeiro, cadastre-se no Docker Hub. Você precisará fazer login no Docker Hub para fazer push da sua imagem usando o comando abaixo:
|
1 |
docker login -u docker-registro-nome de usuário |
Depois de fornecer a senha correta e a autenticação ser bem-sucedida, você poderá fazer push da sua imagem. Para fazer push da imagem, use o comando abaixo:
|
1 |
docker push docker-registro-nome de usuário/docker-imagem-nome |
A saída do comando será semelhante a esta:
|
1 2 3 4 5 |
Saída: O push refere-se a repositório [docker.io/cloudsigma23/centos-mysql] ee30e80cbcc5: Enviado 2653d992f4ef: Montado de library/centos ... |
Depois de fazer o push da imagem, ela deve aparecer no painel da sua conta, como mostrado na imagem abaixo:

Em caso de falha de forma semelhante, é provável que você não tenha feito login:
|
1 2 3 4 5 6 7 |
Saída: O push refere-se ao repositório [docker.io/cloudsigma23/centos-mysql] ee30e80cbcc5: Camada já existe 2653d992f4ef: Camada já existe erros: negado: solicitado acesso ao o recurso é negado não autorizado: autenticação necessária |
Você pode fazer login e repetir a tentativa de push.
Conclusão
Existem várias maneiras de utilizar o Docker. Este tutorial deve fornecer informações suficientes para você começar. E como o Docker é um projeto que está muito em alta, você pode encontrar muitos detalhes sobre o uso, bem como diferentes casos de uso na página do blog do projeto.
Você também pode conferir nossos outros tutoriais do Docker para saber mais sobre o que você pode fazer com o Docker:
- Limpar recursos do Docker – Imagens, contêineres e volumes
- Implantando Laravel, Nginx e MySQL com Docker Compose
- Execute seu próprio servidor VPN no Docker com o OpenVPN Access Server
Boa computação!
Comentários
Nenhum comentário ainda. Seja o primeiro.