Executando Contêineres a partir de Imagens
Agora que você baixou algumas imagens Docker, vamos aprender como criar e executar contêineres com base nessas imagens.
Executando um Contêiner Básico
Para executar um contêiner a partir de uma imagem, use o comando docker run:
docker run ubuntu echo "Hello from Docker"
Este comando:
- Cria um novo contêiner com base na imagem Ubuntu
- Executa o comando
echo "Hello from Docker" dentro do contêiner
- Sai após a conclusão do comando
Você deve ver a saída:
Hello from Docker
Executando um Contêiner Interativo
Para interagir com um contêiner, use as flags -it (terminal interativo):
docker run -it ubuntu bash
Isso inicia um shell bash dentro do contêiner. Você está agora efetivamente "dentro" do contêiner e pode executar comandos.
Experimente alguns comandos:
ls
cat /etc/os-release
Para sair do contêiner, digite:
exit
Listando Contêineres em Execução
Para ver todos os contêineres em execução:
docker ps
Como nossos contêineres saíram imediatamente após a conclusão, você pode não ver nenhuma saída. Para ver todos os contêineres, incluindo os parados:
docker ps -a
Isso mostra todos os contêineres, seus status e quando foram criados/saíram.
Ciclo de Vida do Contêiner
Os contêineres têm um ciclo de vida:
- Created (Criado): Contêiner é criado, mas não iniciado
- Running (Em execução): Contêiner está atualmente em execução
- Paused (Pausado): A execução do contêiner é pausada
- Stopped (Parado): Contêiner saiu, mas ainda existe
- Removed (Removido): Contêiner é excluído
Você pode remover um contêiner parado com:
docker rm <container_id>
Substitua <container_id> pelo ID mostrado na saída de docker ps -a.
Para remover automaticamente um contêiner após sua saída, use a flag --rm:
docker run --rm ubuntu echo "This container will be removed after execution"
Executando um Contêiner de Servidor Web
Vamos tentar algo mais prático executando um servidor web Nginx:
docker pull nginx:alpine
Isso baixa uma imagem Nginx leve baseada no Alpine Linux.
Agora, execute um contêiner que mapeia a porta 8080 no seu host para a porta 80 no contêiner:
docker run -d -p 8080:80 --name my-nginx nginx:alpine
Este comando:
-d: Executa o contêiner em modo detached (background - em segundo plano)
-p 8080:80: Mapeia a porta 8080 no seu host para a porta 80 no contêiner
--name my-nginx: Nomeia o contêiner "my-nginx"
Agora você pode acessar a página de boas-vindas do Nginx navegando para http://localhost:8080 em um navegador web, ou usando curl:
curl http://localhost:8080
Você deve ver o conteúdo HTML da página de boas-vindas do Nginx.
Para parar e remover este contêiner:
docker stop my-nginx
docker rm my-nginx