Ir para o conteúdo
Totalmente local

docker run para Compose

Converta um comando docker run para um serviço docker-compose.yml, ou o contrário.

Entrada
Saída

docker run para Compose

Cole um comando docker run e esta ferramenta reescreve-o como um serviço docker-compose.yml, mapeando a imagem, portos, volumes, variáveis de ambiente, rede e política de reinício para os seus equivalentes em compose. Inverta a opção de direção e funciona também da outra forma: cole um ficheiro compose e obtenha de volta o comando docker run equivalente para cada serviço, útil quando tem apenas um ficheiro compose mas precisa de reproduzir um contentor manualmente.

Cole mais do que um comando docker run, um por linha, e cada um torna-se num serviço diferente no mesmo ficheiro compose — prático para transformar vários contentores ad-hoc numa stack multi-serviço apropriada. Os switches reconhecidos incluem -p/--publish, -v/--volume, -e/--env, --network, --restart, --memory e --cpus (mapeados para um bloco deploy.resources.limits), além de --name, --workdir, --user, --entrypoint, --label e --hostname. As variáveis de ambiente podem permanecer em linha sob environment: ou ser movidas para um ficheiro .env gerado e referenciado com env_file:, e o formato do ficheiro compose pode ser escrito com ou sem uma chave version:.

Nem todas as opções docker run têm um equivalente em compose — coisas como --rm ou --pull são switches de ciclo de vida de contentor sem uma definição compose por-serviço correspondente. A ferramenta nunca as elimina silenciosamente: as opções não suportadas são listadas como comentários junto ao serviço a que pertencem, para saber exatamente o que não foi convertido. Desativar "preservar ordem original das opções" ordena cada lista (portos, volumes, ambiente) alfabeticamente em vez de manter a ordem em que as digitou, o que pode facilitar a revisão de um diff gerado.

Tudo funciona localmente no seu navegador — nenhum comando, nome de imagem ou variável de ambiente é jamais enviado para lado nenhum. Copie o resultado, transfira-o como um ficheiro .txt, ou envie o resultado de volta para a entrada para continuar a refinar.

FAQ

Posso converter vários comandos docker run de uma vez?
Sim. Cole um comando docker run por linha (ou use uma barra invertida no final para continuar um comando através de linhas) e cada um torna-se num serviço diferente no ficheiro compose gerado.
O que acontece às opções que compose não consegue expressar, como --rm?
Não são silenciosamente eliminadas. Cada opção não suportada é listada como um comentário junto ao serviço a que pertence, para saber exatamente o que não foi convertido.
Também converte docker-compose.yml de volta para comandos docker run?
Sim. Troque a opção de direção para "compose → docker run" e cole um ficheiro compose; a ferramenta imprime um comando docker run para cada serviço.
Por que motivo colocaria variáveis de ambiente num ficheiro .env separado em vez do ficheiro compose?
Mantém segredos e valores específicos do ambiente fora do controlo de versão quando o ficheiro compose em si é confirmado. Escolha "Ficheiro .env separado" e a ferramenta move as variáveis para lá e as referencia com env_file:.
O meu comando ou ficheiro compose são carregados em algum local?
Não. A conversão funciona inteiramente no seu navegador usando JavaScript — nada que cole sai nunca do seu dispositivo.