docker compose cria contêineres sem iniciá-los

5

Meus contêineres docker são criados com o docker-compose e eu inicio automaticamente o contêiner no meu sistema CentOS 7 usando derivativos do exemplo de documentação ::

[Unit]
Description=condb container
Requires=docker.service
After=docker.service

[Service]
Restart=always
ExecStart=/usr/bin/docker start -a condb
ExecStop=/usr/bin/docker stop -t 2 condb

[Install]
WantedBy=local.target

Tudo está funcionando bem, exceto pelo fato de que toda vez que eu quiser alterar o contêiner, interrompo os serviços, execute docker-compose up para criar o contêiner e inicie os serviços, esqueci que up já inicia os contêineres .

Posso adaptar meu script em torno disso para parar os contêineres depois de executar docker-compose , mas iniciar / encerrar leva tempo e gostaria de saber se há uma maneira de criar o contêiner sem iniciá-lo (o comando build é criado , up constrói-cria-inicia de acordo com sua ajuda)?

    
por user152777 22.01.2016 / 12:17

1 resposta

1

As origens do docker compose já têm um create command , mas não está em 1.5.2 ainda, nem documentado no site. É claro que você pode tentar e instalar a partir da fonte do github e obter os recursos mais recentes (não lançados).

Como alternativa, você pode tentar alterar seus arquivos systemd para não iniciar os contêineres individuais usando docker , mas executar o docker-compose nos arquivos YAML:

[Service]
Restart=always
ExecStart=/opt/util/docker-compose/bin/docker-compose -f /opt/docker/mongo/docker-compose.yml up --no-recreate
ExecStop=/opt/util/docker-compose/bin/docker-compose -f /opt/docker/mongo/docker-compose.yml stop

você pode simplesmente parar de usar systemctl stop ... , alterar o arquivo docker-compose.yml e começar a usar systemctl start ... . Não tenho certeza se a reinicialização correta é feita no caso de um dos contêineres na configuração de composição cair.

    
por 22.01.2016 / 12:36