1001Ferramentas
🐳 Dev

Docker Run → Compose

Converta um comando docker run para o equivalente docker-compose.yml automaticamente. Mapeia portas, volumes, variáveis de ambiente, redes e restart policies.

Exemplos:

Flags suportadas

--name → container_name -p / --publish → ports -v / --volume → volumes -e / --env → environment --network → networks --restart → restart --entrypoint → entrypoint -u / --user → user -w / --workdir → working_dir -l / --label → labels --hostname → hostname --memory / -m → mem_limit

Do comando solto a um Compose versionável

Aquele container que você subiu com um docker run de cinco linhas funciona, mas o comando mora no histórico do seu shell e mais ninguém consegue reproduzir. Cole o comando aqui e receba o docker-compose.yml equivalente: portas, volumes, variáveis de ambiente, restart policy, rede, usuário e limite de memória, cada um mapeado para a chave certa, pronto para entrar no repositório junto com o projeto.

O conversor entende aspas e continuação de linha com barra invertida, aceita tanto -p 8080:80 quanto --publish=8080:80, e descarta -d e --rm de propósito: no Compose, o detach é decidido na hora do docker compose up -d. Volumes nomeados ganham a seção volumes: no fim do arquivo, redes que não sejam bridge, host ou none ganham networks:, e o YAML sai sem a linha version:, que o Compose v2 considera obsoleta.

Revise antes de usar: flags fora da lista suportada, como --cap-add, --device ou --gpus, são ignoradas em silêncio, então se o seu comando depende delas, acrescente à mão no YAML. Um docker compose config valida a sintaxe do resultado. A conversão roda inteira no navegador, o que importa aqui: comando docker run costuma carregar senha de banco em -e, e nada disso é enviado a servidor nenhum.

Perguntas frequentes

Por que o -d não aparece no arquivo gerado?
Porque no Compose o modo detached não é configuração do serviço: ele é escolhido na hora de subir, com docker compose up -d. O conversor descarta -d e --rm de propósito.
Todas as flags do docker run são suportadas?
Não. A lista cobre as mais comuns: name, portas, volumes, env, network, restart, entrypoint, user, workdir, labels, hostname e memória. O que estiver fora dela é ignorado e precisa ser adicionado manualmente no YAML.
Preciso adicionar a linha version no arquivo?
Não. O Docker Compose v2 ignora o campo version e avisa quando ele está presente. O arquivo gerado já segue o formato atual: services no topo, com volumes e networks quando necessário.

Ferramentas Relacionadas