Docker kapsayıcısını sistem yeniden başlatıldığında nasıl otomatik başlatırım?


46

Bir WordPress sitesini docker kapsayıcılarında barındırdığım ve bu kapsayıcıların her zaman önyükleme sırasında başlatılmasını istediğim için, el ile yapmanız gerekir.


hangi ubuntu sürümünü kullanıyorsunuz?
Maythux



Crossposted. Lütfen bir şeyler yayınlamak için bir site değil, bir tane seçin.
Thomas Ward

Yanıtlar:


34

Şimdiye kadar Normalde bunu yapmanın bir yolu olduğunu sanmıyorum. Zor bir çözüm, yeniden başlatma politikasını kullanmaktır.

sudo docker run --restart=always -d your_image

Bu, ne zaman kapattıysanız, bu, kapsayıcınızdan çıkacağınız anlamına gelir, böylece ana makinenizi başlatırsınız;




2
Neden bunun için sistem olanaklarını kullanmıyorsun? sonradan görme ve systemd hem bu mükemmel başa çıkabilirim
Reishin

29

Yeniden başlatma politikasını mevcut bir kapsayıcıya eklemek çok yaygın bir kullanım durumudur.

Bu, aşağıdaki komutla yapılabilir: docker update --restart {no,on-failure,unless-stopped,always} container_name

Daha fazla ayrıntı: Docker - Kapları otomatik olarak başlat


2
Bu benim sorunumu mükemmel çözdü! Veritabanımla birlikte bir konteynerim vardı ve Mac'im başladığında başlamasını istedim. Görüntünün her zaman yeniden başlatıldığını belirterek (durdurulamazsa), bu işe yaradı!
Colin,

21

Ubuntu 15 şimdi systemd'i desteklediğinden, bu yönetici için örnek:

someservicename.service

[Unit]
Description=Some service
Requires=docker.service
After=docker.service

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

[Install]
WantedBy=multi-user.target

Liman işçisi sitesinde daha fazlası

PS Oldukça sevimli yapılandırma :)


4

Yaptığım şey Upstart dosyalarını kullanmak.

Docker web sitesinde bazı örnekleri ve diğer çözümleri bulabilirsiniz .

/ Etc / init içindeki gibi bir dosya oluşturun:

Description "My container"
start on filesystem and started docker
stop on runlevel [!2345]
respawn
script
   /usr/bin/docker start -a mycontainer
end script
pre-stop script
  /usr/bin/docker stop mycontainer
end script

Docker 1.2'den itibaren , docker hizmeti çalışırken kapları otomatik olarak yeniden başlatmaya yardımcı olabilecek yeniden başlatma politikaları olduğunu unutmayın (örneğin önyüklemeden sonra).

Kişisel olarak, iş istasyonumu sağlamak için kukla kullanıyorum ve bu Docker modülünü daha eksiksiz başlangıç ​​komut dosyalarını otomatik olarak oluşturmak için kullanıyorum (başlatma, durdurma, yeniden başlatma, temizleme seçenekleri ...)


1
start-up öldü. systemd kullanın.
AmirHossein
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.