Eu tenho um docker-compose.yml
que contém vários recipientes. Três deles são para o meu aplicativo (cliente, servidor e banco de dados) e o restante é para várias ferramentas de desenvolvimento (por exemplo, psql, npm, manage.py, etc). Quando eu faço, docker-compose up
todos eles são iniciados, mas eu quero apenas os três principais. Por causa dos links que especifiquei, posso iniciar apenas esses três, docker-compose up client
mas a saída é somente desse contêiner. Portanto, existe uma maneira de fazer o seguinte:
- Diga ao docker-componha quais contêineres devem ser iniciados por
docker-compose up
- Obtenha a saída de todos os contêineres vinculados em
docker-compose up client
docker
docker-compose
aquavitae
fonte
fonte
docker-compose up [options] [SERVICE...]
permite iniciar qualquer subconjunto de serviços que você deseja listar.Respostas:
Você pode iniciar contêineres usando:
Isso executará contêineres em segundo plano e a saída estará disponível a partir de
e consistirá em todos os seus contêineres iniciados
fonte
Para iniciar um serviço específico definido no seu arquivo docker-compose. por exemplo, se você tiver um docker-compose.yml
dado um arquivo de composição como:
Algumas vezes você deseja iniciar apenas o mySQL (às vezes, apenas deseja preencher um banco de dados) antes de iniciar todo o seu conjunto.
fonte
sudo
antesdocker-compose ...
? Isso não é necessário, certo?sudo docker-compose up db
vez desudo docker-compose start db
start
assume que o contêiner já existe e apenas o inicia, extrairáup
imagens, se necessário, criará contêineres, se necessário, e então iniciará o contêiner.Ah, apenas com isso:
fonte
Uma boa solução é executar apenas os serviços desejados como este:
e o arquivo services.txt ficam assim:
é claro que, se a dependência (depend_on), precisar executar serviços relacionados juntos.
--build é opcional, apenas por exemplo.
fonte
Desde a
docker-compose
v1.5 , é possível passar váriosdocker-compose.yml
arquivos com o-f
sinalizador . Isso permite que você divida suas ferramentas de desenvolvimento em um separado,docker-compose.yml
que você inclui apenas sob demanda:Para uma discussão aprofundada sobre isso, consulte docker / componen # 1896 .
Eu criei uma solicitação pull para adicionar uma funcionalidade para conseguir isso com muito mais conveniência ( janela de encaixe / composição # 7548 ), mas como isso requer uma alteração nas especificações do arquivo de composição, isso agora é discutido em compose-spec / compose-spec # 87 .
fonte
Você geralmente não quer fazer isso. Com o Docker Compose, você define os serviços que compõem seu aplicativo.
npm
emanage.py
são apenas comandos de gerenciamento. Você não precisa de um contêiner para eles. Se você precisar, por exemplo, criar suas tabelas de banco de dadosmanage.py
, tudo o que você precisa fazer é:Pense nisso como os dynos únicos que Heroku usa.
Se você realmente precisar tratar esses comandos de gerenciamento como contêineres separados (e também usar o Docker Compose para estes), poderá criar um
.yml
arquivo separado e iniciar o Docker Compose com o seguinte comando:fonte