15%

Poupe 15% em todos os serviços

Teste as suas habilidades e obtenha Desconto em qualquer plano

Utilizar o código:

Skills
Começar a trabalhar
31.10.2024
1 +1

Como Instalar Docker no CentOS: Guia Completo Passo a Passo

O Docker mudou fundamentalmente a forma como os desenvolvedores constroem, enviam e executam aplicações. Ao empacotar software em contêineres leves e portáteis, o Docker elimina o clássico problema “funciona na minha máquina” e simplifica drasticamente tanto os fluxos de trabalho de desenvolvimento quanto as implementações em produção. Se você está executando CentOS e deseja aproveitar o poder da containerização, este guia abrangente o orienta em cada etapa — desde uma atualização do sistema até configuração avançada.

Quer você esteja implantando uma única aplicação web ou orquestrando ambientes complexos com múltiplos contêineres, instalar o Docker corretamente no CentOS é o primeiro passo crítico.

Pré-requisitos

Antes de começar, certifique-se de que você tem:

  • Um servidor CentOS 7 ou CentOS 8 (físico ou virtual)
  • Uma conta de usuário com sudo privilégios
  • Uma conexão de internet estável
  • Familiaridade básica com a linha de comando Linux

> Dica profissional: Para a melhor experiência com Docker, considere executá-lo em um plano de VPS Hosting. Um servidor privado virtual oferece acesso root completo, recursos dedicados e a flexibilidade para executar contêineres sem as restrições de ambientes compartilhados.

Passo 1: Atualizar o Sistema

Antes de instalar qualquer novo software, sempre atualize seus pacotes existentes para garantir compatibilidade e segurança. Execute o seguinte comando:

sudo yum update -y

Este comando atualiza todos os pacotes instalados para suas versões mais recentes. Pode levar alguns minutos dependendo de quantas atualizações estão pendentes. Um sistema totalmente atualizado reduz o risco de conflitos de dependência durante a instalação do Docker.

Passo 2: Instalar Dependências Necessárias

O Docker depende de vários pacotes no nível do sistema para funcionar corretamente. Instale-os com um único comando:

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

Aqui está o que cada pacote faz:

PacotePropósito
yum-utilsFornece o utilitário yum-config-manager para gerenciar repositórios
device-mapper-persistent-dataNecessário para o driver de armazenamento device mapper do Docker
lvm2Suporte do Logical Volume Manager para o backend de armazenamento do Docker

Essas dependências garantem que o Docker possa gerenciar o armazenamento de contêineres de forma eficiente e confiável no seu sistema CentOS.

Passo 3: Adicionar o Repositório Oficial do Docker

Os repositórios padrão do CentOS não incluem os pacotes mais recentes do Docker. Você precisa adicionar o repositório oficial do Docker para obter a versão mais atual e estável:

sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

Este comando adiciona o repositório oficial do CentOS do Docker à lista de repositórios do seu sistema. Usar a fonte oficial garante que você receba pacotes Docker genuínos e atualizados diretamente da Docker Inc., em vez de versões potencialmente desatualizadas de espelhos de terceiros.

Você pode verificar se o repositório foi adicionado com sucesso listando seus repositórios configurados:

sudo yum repolist

Passo 4: Instalar o Docker Engine

Com o repositório em vigor, instalar o Docker é direto:

sudo yum install -y docker-ce docker-ce-cli containerd.io

> Nota: É recomendado instalar também docker-ce-cli (a interface de linha de comando do Docker) e containerd.io (o tempo de execução do contêiner) junto com o mecanismo principal para uma configuração completa e pronta para produção.

Isto instala a Docker Community Edition (CE) — a versão gratuita e de código aberto do Docker que é perfeitamente adequada para cargas de trabalho de desenvolvimento e produção.

Passo 5: Iniciar e Ativar o Serviço Docker

Instalar o Docker não o inicia automaticamente. Você precisa iniciar o daemon do Docker e configurá-lo para iniciar automaticamente no boot do sistema:

sudo systemctl start docker
sudo systemctl enable docker
    systemctl start docker — Inicia o serviço Docker imediatamente
    systemctl enable docker — Configura o Docker para iniciar automaticamente toda vez que o servidor reinicia
    
    Verificar o Status do Serviço
    Confirme que o Docker está funcionando corretamente:
    sudo systemctl status docker
    Você deve ver uma saída indicando que o serviço está ativo (em execução). Se o status mostrar algum erro, revise os logs do sistema com journalctl -u docker para detalhes de solução de problemas.
    Passo 6: Verificar a Instalação do Docker
    Execute o teste integrado do Docker para confirmar que tudo está funcionando conforme esperado:
    sudo docker run hello-world
    Este comando faz o seguinte:
    
    Entra em contato com o registro do Docker Hub
    Baixa a imagem de teste leve hello-world
  • Cria um novo contêiner a partir dessa imagem
  • Executa o contêiner, que imprime uma mensagem de confirmação
  • Se sua instalação for bem-sucedida, você verá uma saída que começa com:

    Hello from Docker!
    This message shows that your installation appears to be working correctly.

    Parabéns — o Docker agora está totalmente instalado e operacional no seu servidor CentOS.

    Passo 7: Configurar o Docker para Usuários Não-Root (Opcional mas Recomendado)

    Por padrão, os comandos do Docker requerem sudo (privilégios de root). Para segurança e conveniência em ambientes de desenvolvimento, você pode permitir que usuários não-root específicos executem comandos do Docker adicionando-os ao grupo docker.

    Criar o Grupo Docker

    Na maioria dos casos, este grupo é criado automaticamente durante a instalação. Se não, crie-o manualmente:

    sudo groupadd docker

    Adicionar Seu Usuário ao Grupo Docker

    Substitua your_username pelo nome de usuário Linux real:

    sudo usermod -aG docker your_username

    Aplicar as Alterações

    Faça logout e login novamente para atualizar sua associação ao grupo. Alternativamente, ative a alteração na sessão atual:

    newgrp docker

    Testar Sem Sudo

    docker run hello-world

    Se isto for executado sem sudo e sem um erro de permissão, a configuração está funcionando corretamente.

    > Aviso de Segurança: O grupo docker concede privilégios equivalentes ao usuário root. Adicione apenas usuários confiáveis a este grupo em ambientes de produção.

    Passo 8: Referência de Comandos Essenciais do Docker

    Assim que o Docker estiver em execução, aqui estão os comandos mais importantes que você usará diariamente:

    Gerenciamento de Contêineres

    # List all running containers
    docker ps
    
    # List all containers (including stopped ones)
    docker ps -a
    
    # Start a stopped container
    docker start container_id
    
    # Stop a running container
    docker stop container_id
    
    # Remove a container
    docker rm container_id
    
    # Remove all stopped containers at once
    docker container prune

    Gerenciamento de Imagens

    # List all locally stored images
    docker images
    
    # Pull an image from Docker Hub
    docker pull image_name
    
    # Pull a specific version/tag
    docker pull image_name:tag
    
    # Remove a local image
    docker rmi image_name
    
    # Remove all unused images
    docker image prune -a

    Executar Contêineres

    # Run a container interactively
    docker run -it image_name /bin/bash
    
    # Run a container in detached (background) mode
    docker run -d image_name
    
    # Run a container with port mapping
    docker run -d -p 8080:80 image_name
    
    # Run a container with a custom name
    docker run -d --name my_container image_name

    Visualizar Logs e Estatísticas

    # View container logs
    docker logs container_id
    
    # Follow live log output
    docker logs -f container_id
    
    # View real-time resource usage
    docker stats

    Passo 9: Confirmar que o Docker Inicia no Boot

    O Docker já deve estar configurado para iniciar no boot após executar systemctl enable docker. Para verificar novamente ou reativar este comportamento:

    sudo systemctl enable docker

    Para desativar a inicialização automática (por exemplo, em uma máquina de desenvolvimento onde você nem sempre precisa do Docker em execução):

    sudo systemctl disable docker

    Passo 10: Configuração Avançada (Opcional)

    Instalar Docker Compose

    Docker Compose é uma ferramenta essencial para definir e gerenciar aplicações multi-contêiner usando um arquivo de configuração YAML simples. Instale a versão estável mais recente:

    sudo curl -L "https://github.com/docker/compose/releases/download/v2.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
    sudo chmod +x /usr/local/bin/docker-compose

    Verifique a instalação:

    docker-compose --version

    Com o Docker Compose, você pode definir pilhas de aplicações inteiras — servidores web, bancos de dados, caches — em um único arquivo docker-compose.yml e iniciá-los todos com um comando: docker-compose up -d.

    Configurar o Daemon do Docker

    Você pode personalizar o comportamento do Docker editando (ou criando) o arquivo de configuração do daemon:

    sudo nano /etc/docker/daemon.json

    Um exemplo de configuração comum:

    {
      "log-driver": "json-file",
      "log-opts": {
        "max-size": "10m",
        "max-file": "3"
      },
      "storage-driver": "overlay2",
      "default-address-pools": [
        {"base": "172.17.0.0/16", "size": 24}
      ]
    }

    Após editar a configuração do daemon, reinicie o Docker para aplicar as alterações:

    sudo systemctl restart docker

    As configurações comuns do daemon que você pode configurar incluem:

    • Driver de log e rotação — Evite que os logs do contêiner consumam todo o espaço em disco
    • Driver de armazenamentooverlay2 é o driver recomendado para CentOS
    • Configurações de DNS — Defina servidores DNS personalizados para contêineres
    • Espelhos de registro — Acelere os pulls de imagem com espelhos locais

    Configurar Regras de Firewall (CentOS 7)

    Se você está executando firewalld, pode ser necessário permitir o tráfego de rede do Docker:

    sudo firewall-cmd --zone=public --add-masquerade --permanent
    sudo firewall-cmd --reload

    Escolher o Ambiente de Hospedagem Certo para Docker

    Executar o Docker em produção requer um ambiente de servidor confiável e de alto desempenho. Aqui estão as melhores opções dependendo do seu caso de uso:

    • VPS Hosting — Ideal para a maioria das implantações do Docker. Acesso root completo, recursos escaláveis e preços econômicos tornam o VPS a escolha preferida para aplicações containerizadas.
    • Servidores Dedicados — Melhor para ambientes de produção com alto tráfego ou quando você precisa de desempenho máximo de CPU, RAM e armazenamento para executar dezenas de contêineres simultaneamente.
    • GPU Hosting — Perfeito para cargas de trabalho de IA/ML executadas dentro de contêineres Docker que requerem aceleração GPU para treinamento ou inferência de modelos.
    • VPS com cPanel — Se você precisa do Docker junto com um painel de controle amigável para gerenciar sites e email, esta combinação oferece o melhor dos dois mundos.

    Solução de Problemas Comuns do Docker no CentOS

    Falha ao Iniciar o Daemon do Docker

    Verifique os logs do sistema para detalhes de erro:

    journalctl -u docker --no-pager | tail -50

    Erros de Permissão Negada

    Se você vir Got permission denied while trying to connect to the Docker daemon socket, certifique-se de que seu usuário está no grupo docker e que você fez logout e login novamente.

    Não Conseguir Fazer Pull de Imagens

    Verifique se seu servidor tem acesso à internet de saída e se o DNS está resolvendo corretamente:

    curl -I https://registry-1.docker.io

    Problemas de Rede do Contêiner

    Reinicie o Docker para reinicializar as pontes de rede:

    sudo systemctl restart docker
    15%

    Poupe 15% em todos os serviços

    Teste as suas habilidades e obtenha Desconto em qualquer plano

    Utilizar o código:

    Skills
    Começar a trabalhar