docker container run

O comando docker container run é uma das operações mais fundamentais do Docker. Ele é usado para criar e iniciar um novo container a partir de uma imagem especificada. Esse comando combina a criação (docker create) e a execução (docker start) de um container em um único passo, tornando-o muito útil para iniciar containers rapidamente.

Sintaxe

docker container run [OPTIONS] IMAGE [COMMAND] [ARG...]
  • IMAGE: O nome da imagem Docker que você deseja usar para criar o container.

  • COMMAND: (Opcional) O comando que você deseja executar dentro do container.

  • ARG...: (Opcional) Argumentos adicionais para o comando executado no container.

Opções Comuns

  • --name: Especifica um nome para o container. Se não for especificado, o Docker atribui um nome aleatório.

  • -d, --detach: Executa o container em segundo plano (modo "detached").

  • -i, --interactive: Mantém o STDIN aberto mesmo que o container não esteja anexado.

  • -t, --tty: Aloca um pseudo-terminal TTY, que é útil para sessões interativas.

  • -p, --publish: Mapeia portas da máquina host para o container no formato host_port:container_port.

  • --rm: Remove automaticamente o container quando ele for parado.

  • -v, --volume: Monta volumes para compartilhar dados entre o host e o container no formato host_dir:container_dir.

  • -e, --env: Define variáveis de ambiente para o container.

  • --network: Conecta o container a uma rede específica.

  • --link: Conecta o container a outro container, permitindo comunicação direta.

  • --restart: Define a política de reinício do container (ex: no, on-failure, always).

Exemplos

  1. Executar um Container e Exibir a Saída:

    Esse comando cria um container a partir da imagem ubuntu, executa o comando echo "Hello, Docker!", exibe a saída e, em seguida, remove o container.

  2. Executar um Container em Segundo Plano (Detached Mode):

    Isso executa um container usando a imagem nginx em segundo plano. O container continuará em execução até ser parado manualmente.

  3. Executar um Container com uma Porta Publicada:

    Este comando executa um container nginx em segundo plano, mapeando a porta 80 do container para a porta 8080 da máquina host.

  4. Executar um Container Interativamente com um Terminal:

    Isso cria um container ubuntu e fornece acesso interativo ao terminal Bash dentro do container.

  5. Montar um Volume no Container:

    Esse comando monta o diretório /host/data do host no diretório /container/data dentro do container, permitindo compartilhar arquivos entre o host e o container.

  6. Remover Automaticamente o Container Após a Execução:

    O container será removido automaticamente após o comando echo ser executado.

  7. Definir Variáveis de Ambiente no Container:

    Este comando define a variável de ambiente MY_VAR dentro do container e executa o comando env para exibir todas as variáveis de ambiente.

Considerações

  • Persistência de dados: Se o container for removido após a execução, os dados não serão preservados a menos que sejam armazenados em volumes ou montagens de host.

  • Networking: Ao usar --network, você pode conectar o container a redes Docker personalizadas, facilitando a comunicação entre múltiplos containers.

Exemplo de Documentação

Executar em Segundo Plano (Detached Mode)

Para rodar um container em segundo plano usando a imagem nginx:

Publicar Portas entre o Host e o Container

Para mapear a porta 80 do container para a porta 8080 do host:

Sessão Interativa com Terminal

Para acessar interativamente um container ubuntu usando o terminal Bash:

Montagem de Volumes para Compartilhamento de Dados

Para montar um diretório do host no container:

Remoção Automática Após a Execução

Para remover automaticamente o container após sua execução:

Definindo Variáveis de Ambiente

Para definir uma variável de ambiente e visualizar todas as variáveis dentro do container:

Considerações Finais

O docker container run é um comando poderoso e versátil, essencial para iniciar containers com configurações personalizadas e controle total sobre sua execução e ambiente.

Last updated