Sempre que executo
docker-compose start
docker-compose ps
Eu vejo meus contêineres com o estado "UP". Se eu fizer
docker-compose up -d
Vou ver mais detalhado, mas ele terá o mesmo estado. Existe alguma diferença entre os dois comandos?
Sempre que executo
docker-compose start
docker-compose ps
Eu vejo meus contêineres com o estado "UP". Se eu fizer
docker-compose up -d
Vou ver mais detalhado, mas ele terá o mesmo estado. Existe alguma diferença entre os dois comandos?
Respostas:
docker-compose start
( https://docs.docker.com/compose/reference/start/ )
Inicia contêineres existentes para um serviço.
docker-compor up
( https://docs.docker.com/compose/reference/up/ )
Cria, (re) cria, inicia e anexa a contêineres para um serviço.
A menos que eles já estejam em execução, este comando também inicia todos os serviços vinculados.
O
docker-compose up
comando agrega a saída de cada contêiner (essencialmente em execuçãodocker-compose logs -f
). Quando o comando sai, todos os contêineres são parados. A execuçãodocker-compose up -d
inicia os contêineres em segundo plano e os deixa em execução.Se houver contêineres existentes para um serviço, e a configuração ou imagem do serviço tiver sido alterada após a criação do contêiner,
docker-compose up
as alterações serão interrompidas, interrompendo e recriando os contêineres (preservando os volumes montados). Para impedir que o Compose pegue as alterações, use o--no-recreate
sinalizador.
Para obter a referência completa da CLI:
https://docs.docker.com/compose/reference/
Na janela de encaixe Perguntas freqüentes, isso é explicado com muita clareza:
Qual é a diferença entre up, run e start?
Normalmente, você quer
docker-compose up
. Useup
para iniciar ou reiniciar todos os serviços definidos em adocker-compose.yml
. No modo "anexado" padrão, você vê todos os logs de todos os contêineres. No modo "desanexado" (-d
), o Compose sai após o início dos contêineres, mas os contêineres continuam sendo executados em segundo plano.O
docker-compose run
comando é para executar tarefas "pontuais" ou "adhoc". Requer o nome do serviço que você deseja executar e inicia apenas contêineres para serviços dos quais o serviço em execução depende. Userun
para executar testes ou executar uma tarefa administrativa, como remover ou adicionar dados a um contêiner de volume de dados. Orun
comando atua comodocker run -ti
na medida em que abre um terminal interativo para o contêiner e retorna um status de saída correspondente ao status de saída do processo no contêiner.O
docker-compose start
comando é útil apenas para reiniciar contêineres criados anteriormente, mas foram parados. Ele nunca cria novos contêineres.