docker-compor para cima / baixo apenas um contêiner


32

Não consegui encontrar uma maneira de ativar / desativar apenas um contêiner em um arquivo docker-compose.yml. Posso iniciar e parar fora de curso um único contêiner, mas não posso fazer alterações na configuração de contêineres entre as reinicializações (variáveis ​​de ambiente, pontos de montagem etc.)

O que estou perdendo aqui? Qual é a melhor prática neste caso?

Respostas:


3

Recentemente, tive essa necessidade e a resolvi com um docker-compose-production.ymlarquivo separado para lidar com os ajustes. Lembre-se de iniciar comdocker-compose -f docker-compose-production.yml...


Como isso funciona quando chega a hora de fazer docker-compose down? Não derrubaria todos os contêineres criados em todos os arquivos .yml?
Jordan Morris

2
Você pode fazerdocker-compose -f docker-compose-production.yml down
icarito

E onde você especifica o contêiner que deseja subir / descer? -fé o seletor do arquivo de composição, não o contêiner.
Astrowalker 11/12/19

30

Eu achei que isso tinha o mesmo efeito que o docker-compose para baixo para um único serviço:

docker-compose rm -f -s -v yourService

docker-compose rm

Uso: rm [opções] [SERVIÇO ...]

Opções:
-f, --force Não peça para confirmar a remoção
-s, --stop Pare os contêineres, se necessário, antes de remover
-v Remova todos os volumes anônimos anexados aos contêineres

Você pode condensar todas as bandeiras em um único -parâmetro:docker-compose rm -fsv yourService


Eu acho que dispõe o disco, btw
Jordan Morris

2
Poderia explicar as bandeiras, o que elas fariam?
Semo

13

Eu sugiro que você verifique este excelente tópico no stackoverflow.com. A resposta rápida aqui para reconstruir o contêiner único e reiniciá-lo é:

docker-compose up -d --build worker

Essa seria a solução ideal se, por exemplo, suas alterações envolverem seu Dockerfile e não apenas o docker-compose.ymll


7

Você pode usar

$ docker-compose -f docker-compose.yml up yourService

para iniciar apenas o seu serviço e todas as dependências exigidas por ele.

Portanto, se o seu serviço depende do contêiner mysql, o comando acima iniciaria os dois contêineres.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.