Como faço com que um container do acoplador comece automaticamente no arranque do sistema?
$ docker run ...
E está tudo bem. Existe uma forma integrada de executar um container de uma forma que ele será reiniciado automaticamente, se o sistema falha e reinicializa?
Em caso afirmativo, isto também está disponível na composição do Estivador?
4 answers
Sim, o Acker tem Políticas de reinício tais como docker run --restart=always
que irão lidar com isto. Isto também está disponível na composição .ficheiro de configuração do yml como restart: always
.
Se quiser que o contentor seja iniciado, mesmo que nenhum utilizador tenha efectuado um login (como a VM VirtualBox que eu só inicie e que não queira fazer login de cada vez). Aqui estão os passos que eu fiz Para Ubuntu 16.04 LTS. Como exemplo, instalei um recipiente oracle db:
$ docker pull alexeiled/docker-oracle-xe-11g
$ docker run -d --name=MYPROJECT_oracle_db --shm-size=2g -p 1521:1521 -p 8080:8080 alexeiled/docker-oracle-xe-11g
$ vim /etc/systemd/system/docker-MYPROJECT-oracle_db.service
E adicionar o seguinte conteúdo:
[Unit]
Description=Redis container
Requires=docker.service
After=docker.service
[Service]
Restart=always
ExecStart=/usr/bin/docker start -a MYPROJECT_oracle_db
ExecStop=/usr/bin/docker stop -t 2 MYPROJECT_oracle_db
[Install]
WantedBy=default.target
E activar o serviço no arranque
sudo systemctl enable docker-MYPROJECT-oracle_db.service
Para mais informações https://docs.docker.com/engine/admin/host_integration/
A Política de reinício por omissãoé no
.
Para os recipientes criados, use docker update
para actualizar a Política de reiniciar.
docker update --restart=always 0576df221c0b
Mais" suave " da documentação:
docker run -dit --restart unless-stopped <image_name>