Parar de escrever comandos docker run — Use Docker Compose em vez disso
A maioria dos comandos docker run se torna uma confusão de flags difícil de manter. Este guia mostra como converter o comando docker run para docker compose — com uma tabela de referência de flags, um exemplo real de conversão e uma ferramenta gratuita de conversão.
Todo fluxo do Docker começa da mesma forma: docker run. Uma bandeira, duas bandeiras — gerenciável. Mas, quando você está rodando um container com portas, variáveis de ambiente, volumes, política de reinício e uma rede personalizada, esse comando atinge 400 caracteres de algo que ninguém consegue lembrar, controlar com versão, ou entregar a um colega sem uma thread no Slack cheia de vergonha.
O Docker Compose é a solução. Um arquivo YAML substitui todo o comando — e você o commita no git.
Por que o docker run para escalar
Aqui está um comando típico docker run para um aplicativo Node.js:
docker run -d \
--name my-app \
-p 3000:3000 \
-e NODE_ENV=production \
-e DATABASE_URL=postgres://user:pass@db:5432/mydb \
-v ./data:/app/data \
--network app-network \
--restart always \
my-app:latest
Isso funciona. Uma vez. Depois você fecha o terminal, abre um novo três semanas depois e não sabe quais bandeiras você usou. Não há nada para git diff. Não há nada para compartilhar com um novo funcionário. Não há forma de verificar se o ambiente de staging corresponde ao de produção.
O que o Docker Compose oferece
O Docker Compose pega tudo que estava dentro desse docker run comando e coloca em um arquivo YAML chamado docker-compose.yml. Esse arquivo:
- Está no seu repositório ao lado do seu código
- Executa com um único
docker compose up -d - Executa de forma idêntica em todas as máquinas e ambientes
- Escala para configurações multi-serviço (aplicativo + banco de dados + cache) sem gymnastica de bandeiras
Como converter um comando docker run
Esse mesmo comando acima se torna esse docker-compose.yml:
version: "3.9"
services:
my-app:
image: my-app:latest
container_name: my-app
ports:
- "3000:3000"
environment:
NODE_ENV: production
DATABASE_URL: postgres://user:pass@db:5432/mydb
volumes:
- ./data:/app/data
networks:
- app-network
restart: always
networks:
app-network:
Mesmo comportamento. Mas agora é legível, commitado e reprodutível.
Inicie-o:
docker compose up -d
Pare-o:
docker compose down
Bandeiras do docker run para chaves do docker-compose.yml
Uma referência para as bandeiras que você usará com mais frequência:
| bandeira do docker run | chave no docker-compose.yml | Exemplo |
|---|---|---|
-p 8080:80 | ports: | - "8080:80" |
-e FOO=bar | environment: | FOO: bar |
-v ./data:/data | volumes: | - ./data:/data |
--network mynet | networks: | mynet |
--restart always | restart: | always |
--name mycontainer | container_name: | mycontainer |
--memory 512m | mem_limit: | 512m |
--cpus 1.5 | deploy.resources.limits.cpus | cpus: "1.5" |
-d | Use o -d bandeira em tempo de execução | docker compose up -d |
Converter automaticamente
Se você tem um comando longo existente docker run — especialmente um herdado de um README ou de um script de CI que ninguém tocou há dois anos — você não precisa mapear manualmente cada bandeira. Use o Conversor de Docker Run para Compose: cole o comando, obtenha um resultado válido docker-compose.yml .
Ele trata portas, variáveis de ambiente, volumes, redes, políticas de reinício e muito mais. Útil para migrar um-liners antigas sem introduzir erros durante a tradução.
Se você estiver configurando limites de recursos no seu arquivo Compose, o Calculadora de Recursos de Contêineres Docker ajuda você a escolher valores sensíveis de memória e CPU com base na sua carga de trabalho — antes de commitar números que você tirou do ar.
Verifique seu Dockerfile enquanto está fazendo isso
Uma vez que seu arquivo Compose esteja organizado, verifique o Dockerfile que ele constrói. Imagens base não fixadas, faltando WORKDIR, camadas redundantes RUN — essas são fáceis de ignorar e irritantes de depurar mais tarde. O Dockerfile Linter os detecta antes que se tornem problemas em produção.
Você também pode gostar
Instale nossas extensões
Adicione ferramentas de IO ao seu navegador favorito para acesso instantâneo e pesquisa mais rápida
恵 O placar chegou!
Placar é uma forma divertida de acompanhar seus jogos, todos os dados são armazenados em seu navegador. Mais recursos serão lançados em breve!
Ferramentas essenciais
Ver tudo Novas chegadas
Ver tudoAtualizar: Nosso ferramenta mais recente foi adicionado em 16 de maio de 2026
