Start Containers Automatically

Docker , kapsayıcılarınızın çıktıklarında otomatik olarak mı yoksa Docker yeniden başlatıldığında mı başlatılacağını denetlemek için restart policies sağlar. Docker, yeniden başlatma ilkelerini kullanmanızı ve kapsayıcıları başlatmak için işlem yöneticilerini kullanmaktan kaçınmanızı önerir.
Daha fazla bilgi için bakınız.
https://docs.docker.com/config/containers/start-containers-automatically/
Bir kapsayıcının yeniden başlatma ilkesini yapılandırmak için docker run - -restart komutu kullanırken bayrağı kullanabilirsiniz. - - restart bayrağın aşağıdakilerden herhangi biri olabilir.
| Bayrak | Tanım |
|---|---|
| no | Kapsayıcıyı otomatik olarak yeniden başlatmayın. (Varsayılan) |
| on-failure veya on-failure: |
|
| always | Kapsayıcı durursa daima yeniden başlatın. Manuel olarak durdurulursa yalnızca docker arka plan programı yeniden başlatıldığında veya konteynerin kendisi manuel olarak yeniden başlatıldığında yeniden başlatılır. |
| unless-stopped | always bayrağında olduğu gibi, ancak kapsayıcı durdurulduğunda (manuel olarak veya başka şekilde), Docker arka plan programı yeniden başlatıldıktan sonra bile yeniden başlatılmaz. |
Yeniden başlatma politikalarını kullanırken aşağıdakileri aklınızda bulundurun:
- Yeniden başlatma ilkesi yalnızca kapsayıcı başarıyla başlatıldıktan sonra etkili olur. Bu durumda başarılı bir şekilde başlatmak, konteynerin en az 10 saniye boyunca açık olduğu ve Docker'ın onu izlemeye başladığı anlamına gelir. Bu, hiç başlamayan bir kabın yeniden başlatma döngüsüne girmesini önler.
- Bir kapsayıcıyı manuel olarak durdurursanız, Docker arka plan programı yeniden başlatılana veya kapsayıcı manuel olarak yeniden başlatılana kadar yeniden başlatma ilkesi yok sayılır. Bu, yeniden başlatma döngüsünü önler.
- Yeniden başlatma politikaları yalnızca kapsayıcılar için geçerlidir. Swarm hizmetlerine yönelik yeniden başlatma politikalarını yapılandırmak için hizmetin yeniden başlatılmasıyla ilgili bayraklara bakın .
Restart Policy Kullanımı
Aşağıdaki komut bir Redis kapsayıcısını başlatır ve kapsayıcı açıkça durdurulmadığı veya arka plan programı yeniden başlatılmadığı sürece onu her zaman yeniden başlayacak şekilde yapılandırır.
docker run -d --restart unless-stopped redis
Aşağıdaki komut, halihazırda çalışan bir kapsayıcının yeniden başlatma ilkesini değiştirir.
docker update --restart unless-stopped redis
Aşağıdaki komut, çalışan tüm kapsayıcıların yeniden başlatma ilkesini değiştirir.
docker update --restart unless-stopped $(docker ps -q)
Show Containers Restart Policy
Çalışan bir konteynerin yeniden başlatma politikasını aşağıdaki komut satırını kullanarak görebilirsiniz.
docker inspect --format '{{.HostConfig.RestartPolicy.Name}}' <container_name/id>
Bütün çalışan konteynerin yeniden başlatma politikasını id numarası ile birlikte görmek için aşağıdaki komut satırını kullanarak görebilirsiniz.
docker ps|grep -v CON|awk '{print $1}'|while read line; do docker inspect -f "{{ .HostConfig.RestartPolicy.Name }}" $line |xargs echo $line ;done
Bütün çalışan konteynerin yeniden başlatma politikasını ismi ile birlikte görmek için aşağıdaki komut satırını kullanarak görebilirsiniz.
docker inspect --format "{{.HostConfig.RestartPolicy.Name}}, {{.Name}}" $(docker ps -qf status=running)