Docker & Containers

comando docker runPrepare a inicialização do contêiner

Informe a imagem e os mapeamentos necessários para conferir um comando de shell POSIX.

comando docker run

Parâmetros da operação

Portas

Montagens

Variáveis de ambiente

Prévia do comando

docker run \
  --detach \
  'nginx:alpine'

Saída POSIX sh para macOS, Linux ou WSL. Caminhos são literais; variáveis e ~ não são expandidos.

A configuração fica neste navegador. Sem conexão com Docker, consulta ao registro ou execução de comandos.

Opções

20 linhas por grupo. CPU: 0.001–1024. Memória: inteiro b/k/m/g, mínimo 6 MiB; vazio deixa sem configuração.

A prévia está atualizada.

Quem reúne exemplos de vários tutoriais pode levar junto uma porta antiga ou confundir o caminho do host com o do contêiner. O formulário de comando docker run separa essas escolhas para facilitar a revisão antes de colar o resultado no terminal.

A configuração inicial usa nginx:alpine em segundo plano, sem publicar portas nem limitar recursos. Campos vazios são omitidos. O ponto de entrada e o comando padrão da imagem continuam valendo; o gerador não inventa senhas, diretórios ou requisitos da aplicação.

Por que montar o comando docker run por campos?

Separe configuração e pontuação do shell

O comando docker run reúne portas, montagens e variáveis como argumentos independentes. Caminhos com espaços e apóstrofos recebem as aspas necessárias. Quando qualquer parâmetro muda, o resultado anterior fica desatualizado e deixa de poder ser exportado.

Linhas de imagem, portas e montagens se unem em uma prévia de comando no terminal.

Revise exposição e valores sensíveis

Modo privilegiado, caminhos sensíveis e portas fora do loopback recebem alertas próprios. Os valores ENV começam mascarados nos campos e na prévia. É preciso escolher exibi-los para exportar o comando completo. A máscara protege a visualização, não criptografa os dados.

Variáveis mascaradas e exportação desabilitada ao lado de alertas de privilégio e montagens do host.

Três decisões antes de usar o terminal

01

Defina o endereço do host

Novas linhas de porta usam 127.0.0.1 e TCP. Apagar o endereço pede publicação em todas as interfaces, e não uma escolha automática de IP privado. A porta interna ainda precisa corresponder ao serviço da imagem, mesmo quando o número externo muda.

02

Escolha entre caminho e volume

Use bind para um caminho absoluto no host Docker e volume para armazenamento gerenciado pelo Docker. Novas montagens são somente leitura. Se a aplicação precisa gravar, desmarque a opção de propósito e confira origem e destino no host que executará o contêiner.

03

Faça várias alterações no modo manual

A geração automática aguarda 350 ms após a última edição. Ao desligá-la, use o botão ou Ctrl/Cmd+Enter para atualizar. Exemplo, limpeza e remoção de linha mostram uma prévia antes de aplicar; um único desfazer recupera os campos e o resultado.

O que cada argumento configura

Mapeamento de portas explícito

Cada linha gera --publish com IPv4, porta do host, porta do contêiner e TCP ou UDP. Ligações sobrepostas para a mesma porta e protocolo são rejeitadas. TCP e UDP podem compartilhar um número. O formulário não consulta se outro processo do host já está usando essa porta.

Montagens com tipo definido

Bind mounts apontam para arquivos ou diretórios do host; volumes nomeados ficam sob gestão do Docker. --mount inclui o tipo e readonly quando solicitado. Destinos internos repetidos após normalização são rejeitados para evitar que uma montagem esconda a outra.

Variáveis de ambiente literais

Espaços, sinais de igual, apóstrofos e cifrões permanecem dentro de um argumento. Valor vazio vira KEY= explicitamente. Nomes repetidos causam erro. Nenhum ambiente do host é consultado e textos como $HOME ou substituições de comando não são expandidos.

Ciclo de vida e limites

Nome, segundo plano, terminal interativo, remoção ao sair, reinício, CPU e memória podem ser ajustados. --rm com política diferente de no bloqueia a geração. Recurso em branco não recebe limite adicional. Informar um teto não reserva capacidade nem confirma suporte do host.

Escopo e limites reais

Um contêiner em shell POSIX
A saída usa POSIX sh no Linux, macOS ou WSL, com caminhos de contêiner Linux. Não há PowerShell, CMD, importação de comandos, Compose, Dockerfile, flags livres ou troca do comando inicial. O gerador não executa Docker nem consulta registros de imagens.
Imagens e portas delimitadas
Aceita repositório em minúsculas, registro DNS ou IPv4 e porta opcionais, tag e digest sha256. Não aceita registro IPv6, ID isolado de imagem ou outros digests. Portas são números inteiros de 1 a 65535, sem intervalos, portas aleatórias, ligação IPv6 ou SCTP.
Caminhos sem ambiguidade
A origem bind precisa ser absoluta; o destino também, mas não pode ser a raiz. Vírgulas, aspas duplas, barras invertidas, controles e segmentos . ou .. são rejeitados. Espaços e apóstrofos são preservados. Nomes de volumes têm 2–255 letras, números, pontos, sublinhados ou hífens, começando com letra ou número.
Limites de tamanho e recursos
Cada grupo admite 20 linhas. Cada texto tem até 4096 unidades UTF-16 e o conjunto até 65536. CPU aceita 0.001–1024 com até três casas decimais. Memória usa inteiro e sufixo opcional b/k/m/g, mínimo de 6 MiB e máximo de bytes em inteiro assinado de 64 bits. Excesso gera erro, sem truncamento silencioso.
Máscara não substitui gestão de segredos
Copiar e baixar ficam bloqueados enquanto valores ENV estiverem ocultos. Depois de exibi-los, o script contém os valores reais, que podem aparecer no histórico do shell ou na inspeção do contêiner. Nomes e caminhos não são classificados automaticamente como secretos. Isso não substitui Docker secrets.
Alertas não auditam o host
A detecção cobre raiz e diretórios de sistema ou usuário, sem resolver links simbólicos. Um socket Docker merece revisão mesmo com somente leitura. Existência de arquivos, permissões, conteúdo da imagem e suporte do kernel aos limites precisam ser conferidos na máquina real.

Perguntas sobre o comando docker run

Existe alguma forma de eu conseguir definir automaticamente uma porta para o container que desejo criar?

O Docker oferece formas de publicar portas automaticamente, mas este formulário trabalha apenas com números explícitos. Preencha a porta do host e a interna em cada linha. Ele não gera -P nem consulta quais portas aleatórias foram atribuídas, pois isso exigiria observar um contêiner em execução.

Como passar uma variável de ambiente com espaços para o Docker?

Digite o valor como ele é, sem adicionar aspas de shell por conta própria. O argumento KEY=value inteiro é protegido para manter espaços e sinais de igual. $HOME continua sendo texto literal. Quebras de linha e caracteres de controle são recusados.

É possível definir --rm e --restart no Dockerfile?

Essas opções pertencem à execução de docker run, não às instruções do Dockerfile. Um serviço que deve reiniciar não deve ser removido automaticamente ao sair. Para uma tarefa temporária com --rm, mantenha a política no. O formulário impede a combinação conflitante.

Qual é a diferença entre volumes Docker e bind mounts?

O Docker gerencia o volume nomeado; já um bind mount aponta para um caminho específico do host. Com escrita permitida, ele pode alterar arquivos do host. Ao usar --mount, uma origem bind inexistente normalmente causa erro. O site não consegue verificar se esse caminho existe.

Como usar variáveis de ambiente no Docker sem expô-las no Dockerfile?

Você pode informar variáveis no momento de iniciar o contêiner, usando os campos de nome e valor, sem colocá-las no Dockerfile. Isso não torna o valor secreto: depois de revelar e exportar, ele estará no comando e poderá aparecer em histórico ou inspeção. Use um mecanismo de segredos apropriado quando a aplicação exigir confidencialidade.

A prévia difere da documentação do Docker?

Confira antes de copiar

Prepare o comando docker run, corrija os erros e leia os alertas. Confirme os requisitos do host onde pretende executá-lo antes de baixar o script.