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 (-p vira ports:, -v vira volumes:, 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

  1. Teste rápido seguido de versionamento: você cria um contêiner com docker run para validar uma imagem, depois gera o docker-compose.yml para incluir no repositório Git.
  2. 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.
  3. 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

  1. Acesse a página da ferramenta: Docker run → Compose
  2. Cole o comando docker run completo 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 ``

  1. Clique em "Converter" (ou pressione Enter).
  2. 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 --network com um nome existente, o conversor adiciona networks: e marca como external: 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: -e e --env são equivalentes; o conversor reconhece ambos.
  • Parâmetros ignorados: atualmente, flags como --memory, --cpus, --entrypoint nã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.