Ao trabalhar com contêineres Docker, é comum começar com um comando docker run para testar rapidamente e depois migrar para um docker-compose.yml para organizar múltiplos serviços. O conversor Docker run → Compose faz exatamente isso: a partir de um comando docker run completo (com opções como -p, -v, -e, --restart, --network, --privileged), ele gera automaticamente o bloco YAML correspondente no formato docker-compose.
O que é o Docker run → Compose e por que usá-lo?
Docker run é o comando único para iniciar um contêiner, enquanto Docker Compose permite definir e gerenciar múltiplos contêineres em um arquivo YAML. A ferramenta Docker run → Compose converte a sintaxe de linha de comando para a estrutura do Compose, economizando tempo e evitando erros de digitação.
Principais vantagens:
- Elimina o trabalho manual de traduzir flags (
-pviraports:,-vviravolumes:, etc.) - Garante que todos os parâmetros sejam transportados corretamente (rede, reinicialização, variáveis de ambiente, modo privilegiado)
- Ideal tanto para iniciantes quanto para profissionais que precisam migrar scripts legados
Casos de uso comuns
- Teste rápido seguido de versionamento: você cria um contêiner com
docker runpara validar uma imagem, depois gera odocker-compose.ymlpara incluir no repositório Git. - Migração de aplicações legadas: muitos tutoriais e exemplos online usam
docker run. Com o conversor, você obtém o Compose equivalente sem precisar reescrever tudo. - Ambiente de desenvolvimento compartilhado: coloque a saída do conversor em um arquivo e sua equipe pode subir o mesmo ambiente com
docker compose up.
Passo a passo: como usar o conversor
- Acesse a página da ferramenta: Docker run → Compose
- Cole o comando
docker runcompleto no campo de entrada. Exemplo:
``bash docker run -d --name meu-nginx -p 80:80 -v /meu-site:/usr/share/nginx/html -e NGINX_HOST=meusite.com --restart unless-stopped --network minha-rede nginx:alpine ``
- Clique em "Converter" (ou pressione Enter).
- Copie o resultado YAML gerado.
A ferramenta processa as opções mais comuns (-p, -v, -e, --restart, --network, --privileged) e as transforma nos campos equivalentes do Compose.
Exemplos práticos
Exemplo 1: Servidor web simples
Comando original: ``bash docker run -d -p 8080:80 --name web nginx:latest ``
Saída convertida: ```yaml version: '3.8' services: web: image: nginx:latest container_name: web ports:
- "8080:80"
```
Exemplo 2: Banco de dados com volume e variáveis
Comando original: ``bash docker run -d --name meu-postgres -e POSTGRES_PASSWORD=segredo -v dados_pg:/var/lib/postgresql/data -p 5432:5432 postgres:13 ``
Saída convertida: ```yaml version: '3.8' services: meu-postgres: image: postgres:13 container_name: meu-postgres ports:
- "5432:5432"
environment: POSTGRES_PASSWORD: segredo volumes:
- dados_pg:/var/lib/postgresql/data
volumes: dados_pg: ```
Exemplo 3: Contêiner com rede customizada e modo privilegiado
Comando original: ``bash docker run -d --name app --privileged --network minha-rede --restart always alpine sleep infinity ``
Saída convertida: ```yaml version: '3.8' services: app: image: alpine container_name: app command: sleep infinity privileged: true networks:
- minha-rede
restart: always networks: minha-rede: external: true ```
Erros comuns ao converter manualmente (e como evitá-los)
- Esquecer volumes externos: no Compose, volumes nomeados precisam ser declarados na seção
volumes:. O conversor já faz isso automaticamente. - Redes sem definição: se o comando usa
--networkcom um nome existente, o conversor adicionanetworks:e marca comoexternal: true. - Variáveis de ambiente complexas: valores com espaços ou caracteres especiais podem quebrar o YAML. A ferramenta escapa corretamente os valores.
- Flags com formato longo vs. curto:
-ee--envsão equivalentes; o conversor reconhece ambos. - Parâmetros ignorados: atualmente, flags como
--memory,--cpus,--entrypointnão são suportadas. Verifique a documentação da ferramenta para a lista completa.
Perguntas frequentes (FAQ)
1. Posso converter comandos com múltiplos -p, -v, -e? Sim. A ferramenta processa quantas repetições forem necessárias, gerando listas correspondentes no YAML.
2. O conversor funciona offline? A ferramenta foi planejada para uso no navegador. Todo o processamento é feito localmente (não envia dados para servidores), garantindo privacidade.
3. E se meu comando tiver --restart com valor on-failure? O conversor mapeia corretamente para restart: on-failure, mantendo opções como :2 (número máximo de tentativas).
4. A saída inclui a versão do Compose? Sim, por padrão é gerado version: '3.8'. Você pode alterar manualmente se precisar de recursos de versões mais recentes.
5. O que fazer se a ferramenta não reconhecer uma flag? Considere contribuir com o projeto ou ajustar manualmente o YAML. Flags não suportadas são ignoradas com um aviso.
Conclusão
O Docker run → Compose é uma ferramenta prática para desenvolvedores que desejam migrar seus comandos para o formato Compose sem retrabalho. Se você está iniciando em Docker ou precisa organizar seu ambiente, ter um conversor confiável acelera o processo e reduz erros.
Explore mais ferramentas úteis na categoria [Dev](/), como geradores de Dockerfile e validadores de Compose, para turbinar seu fluxo de trabalho com contêineres.