Pular para o conteúdo
ToolMug

De docker run para Docker Compose

Cole um ou mais comandos docker run para obter o compose.yaml equivalente. Portas, volumes, variáveis de ambiente, redes, política de reinício, limites de memória e CPU, logging e health checks são convertidos, e as flags que não podem ser convertidas são listadas para você adicionar manualmente.

Roda no seu navegador — nada do que você digita é enviado

docker run → Docker Compose
docker run
Docker Compose

Como usar

  1. Cole os comandos docker run à esquerda. Comandos em várias linhas com barra invertida no final funcionam; separe vários comandos com quebras de linha, ponto e vírgula ou &&.
  2. O arquivo Compose aparece à direita. Cada comando se torna um serviço nomeado a partir de --name, ou da imagem se não houver nenhum.
  3. Confira a nota em amarelo com o que não foi convertido, depois copie ou baixe o compose.yaml e execute docker compose up -d.

Opções explicadas

Flags suportadas
-p, -v, --mount, -e, --env-file, --name, --restart, --network, -w, -u, -h, --entrypoint, -l, --add-host, --dns, --cap-add/drop, --device, -m, --cpus, --shm-size, --ulimit, --log-driver/--log-opt, --health-*, -i, -t, --privileged, --init, --read-only e mais.
Volumes e redes nomeados
Volumes nomeados (como pgdata:/data) são declarados em volumes de nível superior. Redes personalizadas são declaradas como external true, ou seja, usam uma rede já existente. As redes host e none se tornam network_mode.
Portas
Os mapeamentos de porta sempre ficam entre aspas. O YAML 1.1 interpreta valores como 22:22 como números em base 60, e a documentação do Docker recomenda escrever as portas como strings.
Flags ignoradas
-d e --rm não têm equivalente no Compose e são descartadas. Flags não suportadas, como --gpus, são listadas na nota.

Exemplo

docker run -d --name web --restart unless-stopped -p 8080:80 \
  -v ./html:/usr/share/nginx/html:ro -e TZ=Asia/Shanghai --memory 512m nginx:1.27

vira:

services:
  web:
    image: nginx:1.27
    container_name: web
    restart: unless-stopped
    mem_limit: 512m
    ports:
      - "8080:80"
    environment:
      - TZ=Asia/Shanghai
    volumes:
      - ./html:/usr/share/nginx/html:ro

Perguntas frequentes

O arquivo precisa de uma linha version?

Não. A versão atual do Docker Compose (v2) não usa mais a chave version de nível superior; se estiver presente, é ignorada com um aviso.

As senhas nas minhas variáveis de ambiente são enviadas para algum servidor?

Não. A análise e a conversão são feitas no seu navegador e nada é enviado a um servidor.

Ele trata argumentos entre aspas?

Sim. Aspas simples, aspas duplas e escapes com barra invertida seguem as regras do shell, então -e "MSG=hello world" mantém o valor completo.

Privacidade

Esta ferramenta funciona inteiramente no seu navegador. Seus arquivos e textos são processados no seu dispositivo e nunca são enviados aos nossos servidores.

Ferramentas relacionadas