Tutorial: Como Iniciar Container Docker em 2024
Se você está trabalhando em um aplicativo ou um serviço que funciona em vários sistemas operacionais, o Docker pode simplificar seu processo de implantação.
Com a criação de containers Docker, você pode lançar sem esforço várias aplicações ou serviços em sistemas como hospedagem de servidor privado virtual ou máquinas dedicadas. O Docker também é leve, mais fácil de implantar e oferece melhor desempenho do que máquinas virtuais.
Os containers Docker possuem todas as dependências necessárias para executar aplicativos, eliminando problemas de compatibilidade. Criar containers Docker do zero é vital para qualquer projeto de desenvolvimento que você deseje implantar usando este software de código aberto.
Este tutorial irá guiar você na criação de um container Docker, detalhando seus benefícios no desenvolvimento de software e as melhores práticas para isso.
Conteúdo
O Que É um Container Docker?
Um container Docker é um pacote de software autossuficiente com todas as dependências necessárias para executar um aplicativo específico em diferentes sistemas operacionais. A imagem Docker dita todas as instruções de configuração para iniciar ou parar containers. Um novo container é criado sempre que um usuário executa uma imagem.
Por Que Usar Containers Docker?
Os containers Docker representam um divisor de águas para os desenvolvedores de hoje. Com o isolamento de containers, seus aplicativos podem rodar no mesmo sistema operacional enquanto permanecem separados de outros sistemas operacionais e containers. Este recurso garante um desempenho consistente em ambientes de desenvolvimento e preparação.
Para empresas, os containers Docker aumentam a velocidade de implantação e maximizam a utilização de recursos do sistema. Em termos de recursos, a implantação de containers Docker requer significativamente menos memória do que uma máquina virtual. Além disso, sua natureza portátil torna possível a migração e a escalabilidade de conteúdos e aplicações legadas.
Para resumir, os containers Docker otimizam o processo de desenvolvimento, economizando tempo valioso e contribuindo para o sucesso de seus projetos de desenvolvimento.
Como Criar um Container Docker
Neste tutorial, usaremos um servidor privado virtual (VPS) rodando o sistema operacional Ubuntu 22.04. Primeiro, certifique-se de que o Docker está instalado no seu servidor. Se não estiver, siga nosso guia para instalar o Docker no Ubuntu.
Para os clientes VPS da Hostinger, você pode aproveitar nosso template Ubuntu 22.04 64-bit com Docker para instalação automática do Docker. Para usar este modelo, faça login no seu painel VPS , depois navegue até SO e Painel → Sistema Operacional.
No menu suspenso Aplicativos, escolha Ubuntu 22.04 64bit com Docker e clique em Mudar SO. Aguarde o processo de instalação ser concluído.
Para saber mais sobre este template e como ele se destaca, leia nossa página dedicada à nossa Hospedagem de contêiner Docker.
Sugestão de Leitura
Se você preferir usar a distribuição CentOS, leia nosso guia de instalação do Docker no CentOS. No entanto, os comandos para criar um container Docker podem ser diferentes.
Uma vez concluída a instalação, siga estas etapas de containerização do Docker para executar seu aplicativo dentro de um ambiente isolado.
1. Construa uma Imagem Docker
Uma imagem Docker é um projeto para o seu container. Ela contém todo o conteúdo, como código, bibliotecas e dependências, de que seu aplicativo precisa para funcionar.
Ao executar uma imagem Docker, que pode ser de propriedade privada ou compartilhada em plataformas como Docker Hub, ela se transforma em um container Docker.
Embora seja possível criar uma nova imagem Docker, é mais prático usar uma imagem base e desenvolver a partir dela, pois o Docker Hub oferece inúmeras imagens base que estão prontamente disponíveis.
Primeiro, faça login no seu VPS usando um cliente SSH como o PuTTY. Então, use este comando Linux para listar todas as imagens Docker em seu sistema:
sudo docker images
Para obter mais informações sobre as imagens Docker existentes, use o seguinte comando:
sudo docker images --help
Use a opção -q através do prompt de comando para listar os IDs numéricos das imagens disponíveis em seu sistema:
sudo docker images -q
Para listar todas as imagens não pendentes que não estão marcadas ou referenciadas por um novo container, use este comando:
sudo docker images -f dangling=false
Para este tutorial, vamos puxar uma imagem baseada em MySQL. Observe que você pode visitar a página de cada imagem para obter informações adicionais.
Importe a nova imagem para o diretório atual executando o seguinte comando. Lembre-se de substituir <nome da imagem ou ID da imagem> pelo nome ou ID da imagem escolhida:
docker pull <nome da imagem ou id da imagem>
Outra alternativa para criar uma imagem Docker é usar o Easypanel. Esta ferramenta fornece uma interface gráfica do usuário para simplificar o gerenciamento de imagens Docker, especialmente para aqueles não familiarizados com operações de linha de comando.
O EasyPanel facilita a criação de imagens Docker para aplicações escritas em várias linguagens de programação, como Node.js, Ruby, Python, PHP, Go e Java. Ele automatiza muitos dos processos envolvidos na configuração de ambientes e dependências.
Os planos de host para VPS da Hostinger oferecem um template Ubuntu 22.04 64bit com EasyPanel, que pode ser instalado através do mesmo menu Sistema Operacional no painel do seu Servidor VPS.
Você pode escolher se usará um template baseado em Docker ou recorrerá ao EasyPanel. Selecione aquele que se encaixa na sua especialidade e requisitos do projeto, seja o Docker para mais controle ou o EasyPanel para facilidade de uso.
2. Escreva um Dockerfile
Um Dockerfile é um arquivo de texto que informa ao Docker como construir sua imagem. Ele lista todos os comandos Docker necessários para montar uma imagem de container. Usar um Dockerfile garante que suas imagens sejam construídas da mesma maneira todas as vezes, tornando seu trabalho mais consistente e fácil de gerenciar.
Aqui está um exemplo de um modelo simples de Dockerfile:
FROM ubuntu:latest
WORKDIR /app
COPY . .
RUN apt-get update && apt-get install -y curl
CMD ["curl", "https://www.exemplo.com"]
Em um Dockerfile, cada comando cria uma nova camada na imagem Docker. Veja como funciona, conforme mostrado em nosso exemplo:
- FROM ubuntu:latest ‒ este comando puxa a imagem Ubuntu mais recente e a define como a camada base. As seguintes camadas serão construídas em cima disso.
- WORKDIR /app ‒ define o diretório de trabalho do container, criando uma nova camada que serve como contexto para os comandos subsequentes.
- COPY . . ‒ copia arquivos locais para a mesma pasta do container, criando uma camada adicional contendo os arquivos do seu projeto.
- RUN apt-get update && apt-get install -y curl ‒ o comando Docker run instala o cURL no container, adicionando uma nova camada para a lista de pacotes atualizada e o pacote cURL instalado.
- CMD [“curl”, “https://www.exemplo.com”] ‒ define o comando padrão para executar o aplicativo quando o container iniciar.
Quaisquer alterações que você faça enquanto o container está em execução, como adicionar ou modificar arquivos, são escritas nas respectivas camadas graváveis. Dessa forma, você pode fazer ajustes temporários sem afetar a imagem base.
Dica
Um Dockerfile é opcional ao usar imagens pré-construídas do Docker Hub. No entanto, ele é necessário para personalizar ou ampliar essas imagens.
3. Construa o Container Docker
Se você estiver preparando um novo Dockerfile, navegue até o mesmo diretório que o referido arquivo e execute o comando Docker build para iniciar um novo processo de construção de imagem. Lembre-se de substituir a opção <nome da imagem ou id da imagem> com o nome da sua tag.
docker build -t <nome da imagem ou id da imagem>
Inicia um novo container a partir da imagem que você acabou de construir usando o comando Docker run ubuntu:
docker run <nome da imagem ou id da imagem>
Caso contrário, execute uma imagem pré-construída importada do Docker Hub. Vamos usar a imagem MySQL que puxamos anteriormente:
docker run mysql
O empilhamento eficiente de imagens é crucial para otimizar o tempo de construção e o uso de recursos. Cada comando em um Dockerfile cria uma nova camada, que o Docker armazena em cache. Quando você reconstrói uma imagem, o Docker reutiliza camadas inalteradas, acelerando o processo de construção.
Além disso, o empilhamento eficiente pode reduzir o tamanho da imagem, tornando-a mais rápida para puxar, empurrar ou implantar. Essa prática é particularmente vital para empresas que precisam de implantações rápidas para permanecerem competitivas.
4. Execute e Gerencie containers
Uma vez que criamos a imagem do container, inicie-a usando o comando Docker run . Substitua <nome do container>pelo nome de sua escolha. Aqui, mysql bash representa qual container iremos executar.
docker run --name <nome do container> -it mysql bash
Use o comando Docker ps com a opção -a para listar os containers em execução no seu sistema. Adicione sudo no início do comando para executá-lo com permissões de root.
docker ps -a
Use o seguinte comando Docker para ver o processo principal de um container:
docker top MyContainer
Para mapear portas entre o host e o container, use a opção -p juntamente com o comando docker run :
docker run -p porta_do_host:porta_do_container <nome da imagem>
Mapear portas expõe o aplicativo do seu container para o exterior, permitindo o acesso da sua máquina host. Esse processo é vital para servidores web, bancos de dados ou qualquer aplicação que se conecte com sistemas externos.
Para anexar um volume para armazenamento persistente, use a opção -v:
docker run -v diretório_do_host:diretório_do_container <nome da imagem>
Anexar volumes torna a configuração do seu container mais robusta, fácil de gerenciar e com melhor desempenho. Seus dados permanecem intactos mesmo se a configuração do container Docker for interrompida, excluída ou atualizada. Além disso, os volumes podem ser compartilhados entre vários containers, simplificando a gestão de dados em configurações com vários containers. Você pode usar o comando docker container ls para listar todos os containers disponíveis.
Dica
Use comandos Docker CLI ou a API Docker para gerenciar volumes.
Você pode limitar recursos como CPU e memória usando as opções –cpus e –memory. O seguinte exemplo limita o container a até 0,5 CPUs e 500 MB de RAM.
docker run --cpus=0.5 --memory=500m <nome da imagem>
Execyte o seguinte comando para parar o container em execução:
docker stop MeuContainer
O seguinte comando mostra as informações adicionais do container, incluindo ID do container, utilização de CPU e uso de memória:
docker stats
Para encerrar o container Docker, insira o seguinte comando na linha de comando:
docker kill MeuContainer
Melhores Práticas para Container Docker
Aqui estão algumas melhores práticas para garantir um processo eficiente de containerização Docker.
Use o Kodee, Assistente com IA da Hostinger
Eficiência é um elemento vital ao criar containers Docker. Felizmente, os clientes da Hostinger podem utilizar o Kodee, nosso assistente de VPS com IA, para otimizar o processo. Ao fornecer guias de instalação ou recomendar comandos apropriados, o Kodee simplifica suas tarefas de gerenciamento de VPS.
Este recurso está acessível no painel esquerdo do seu painel de controle VPS . Você pode fazer perguntas sobre o processo de containerização do Docker, como “como atualizar dinamicamente o container quando a imagem base muda”.
O Kodee responderá com uma resposta abrangente, incluindo quaisquer comandos ou scripts relevantes.
Mantenha os Containers Leves
Containers menores são mais rápidos, mais eficientes e mais seguros. Eles são implantados rapidamente, usam menos recursos e maximizam a utilização do hardware. Com menos componentes, eles reduzem os riscos de ataques, melhorando a segurança geral.
Siga estas dicas para criar containers leves:
- Opte por imagens base leves ‒ se você tiver várias imagens semelhantes, construa uma imagem base com componentes compartilhados e crie imagens Docker personalizadas a partir dela.
- Use construções em várias etapas ‒ inclua apenas componentes essenciais como artefatos e ambiente na imagem final.
- Remova arquivos desnecessários ‒ após instalar pacotes, otimize o desempenho do seu aplicativo Docker removendo imagens Docker não utilizadas, cache e arquivos temporários.
- Seja específico nos comandos ‒ consolide os comandos em uma única linha de execução para reduzir as camadas da imagem. Além disso, evite instalar pacotes recomendados ou sugeridos que não são essenciais.
Use Imagens Oficiais
Usar imagens oficiais do Docker Hub para a construção de imagens Docker garante uma base segura, otimizada e confiável para seus containers. Eles geralmente são adaptados para casos de uso específicos, fornecendo um ponto de partida eficiente para o desenvolvimento de aplicações robustas e eficientes.
Em termos de segurança, as imagens oficiais passam por verificações de segurança rigorosas e são prontamente corrigidas para vulnerabilidades. Como são amplamente utilizadas, as imagens oficiais são bem testadas e compatíveis com várias configurações e plataformas.
Limitar Permissões do Container
Executar containers com privilégios extras representa um risco de segurança. Um hacker pode obter controle total do seu sistema se um container for violado enquanto estiver sendo executado como root.
Para manter a segurança do sistema, conceda apenas as permissões necessárias ao seu container. Crie e use um usuário não-root para executar sua aplicação dentro do container. Você também pode configurar seu container para o modo somente leitura para evitar alterações indesejadas.
Proteja Informações Sensíveis
Quando o container Docker inicia, você pode configurar variáveis de ambiente dependendo do aplicativo ou serviço que está sendo executado dentro dele. Algumas das variáveis mais comuns incluem credenciais de banco de dados, configurações de aplicativos e valores secretos para autenticação.
As variáveis de ambiente mantêm os dados sensíveis separados do seu código e imagem, escondendo-os daqueles que têm acesso a ambos. Usar variáveis de ambiente também torna sua configuração mais flexível, pois você pode facilmente alterar os dados sem modificar o Dockerfile ou reconstruir a imagem.
Aproveite a Orquestração de containers
Ferramentas de orquestração de containers, como Docker Compose e Kubernetes, simplificam o gerenciamento de aplicativos multi-containers. Eles simplificam a implantação permitindo que você lance vários containers com um único comando.
Por exemplo, você pode usar o Docker Compose para instalar o WordPress com todos os componentes necessários, como um servidor web e um banco de dados.
Ferramentas de orquestração também lidam com a escala, ajustando automaticamente os serviços à medida que o tráfego aumenta. Eles distribuem o tráfego de rede de entrada em vários containers, melhorando o desempenho e a confiabilidade.
Conclusão
O Docker é uma ferramenta inestimável para os desenvolvedores e empresas de hoje, oferecendo um ambiente consistente, implantações simplificadas e otimização do uso de recursos. Saber como construir um container Docker ajuda a tornar seu ciclo de desenvolvimento mais eficiente e seguro.
Cobrimos as etapas para criar um container Docker a partir de uma imagem e comandos comuns para completar o processo. Você também aprendeu as melhores práticas para um eficiente gerenciamento de containers Docker no servidor privado virtual Ubuntu 22.04.
Se você tiver alguma dúvida sobre a criação de containers Docker, deixe um comentário abaixo.
Como Criar um Container Docker: Perguntas Frequentes
Esta seção aborda perguntas frequentes sobre a criação de containers Docker.
Qual a Diferença Entre Imagem Docker e Container Docker?
Uma imagem Docker é um modelo para criar um container, contendo o código do aplicativo, bibliotecas e dependências. Por outro lado, um container Docker é uma versão em execução de uma imagem. Quando você inicia um container a partir de uma imagem, o sistema cria um ambiente ao vivo onde o aplicativo pode ser executado e interagir.
Uma Imagem Docker Pode ter Múltiplos Containers?
Sim, você pode usar uma única imagem Docker para criar vários containers. Cada container é executado de forma independente e possui seu próprio conjunto de recursos e configurações. Essa prática permite que você escale ou execute aplicativos em vários ambientes sem criar uma imagem Docker cada vez, economizando tempo e recursos.
As Imagens Docker Podem ser Editadas?
As imagens do Docker são feitas de camadas somente leitura, então você não pode editá-las diretamente. Para fazer alterações, atualize o Dockerfile ou os arquivos de origem e construa uma nova imagem com o comando Docker build. Como os containers existentes não serão atualizados automaticamente, você deve pará-los e criar novos a partir da imagem criada.