Sorun noktası nedir
Docker önceden oluşturulmuş yazılımı "sandboxed" konteyner içinde çalıştıracaktır. Bir yandan, bu yaklaşım bize kesinlikle idempotans sağlar, yazılımın ortamdan ayrılmadığını ve "davranışın" her zaman aynı olduğunu garanti ederiz.
Öte yandan, Docker önceden tanımlanmış komutlar tamamlandığında duracaktır.
Örnek - echo komutundan sonra konteyner hemen duracaktır:
docker ps # Check the running containers
Docker'ın bu davranışı bir hata değil, sistem kaynaklarını korumak için bir özelliktir. Ancak bazen konteyner kalıcı olarak çalışmalıdır, örneğin yazılımın "gelen" bağlantıları beklemesi gerekiyorsa.
Docker konteynerini hiç durmamaya nasıl "zorlarsınız"
Hedefinize birkaç yöntemle ulaşabilirsiniz:
Pseudo-terminal launch. Konteyneri zaman zaman çalışır durumda tutmanız gerekiyorsa bu yol iyidir. Komutunuzu -it etiketleri ile çalıştırmanız yeterlidir:
<command> # Run command "inside" the container
docker ps # Check the container status
Herhangi bir komutu "döngü içinde" çalıştırın. Konteynerin durmasını önlemek için herhangi bir komutu bir döngü içinde çalıştırabilir, ardından terminal oturumunu kapatabilirsiniz:
Ardından konteyner durumunu kontrol edin:
Docker'ı "detached" modunda çalıştırırsanız aynı sonucu elde edebilirsiniz. Sadece -d etiketini kullanın:
Sonuç
Bu makaleyi okuduktan sonra, senaryonuz bitmiş olsa bile docker konteynerini nasıl canlı tutacağınızı biliyordunuz.