30.05.2023

Hizmetler başlatıldıktan sonra Docker container (konteyner) çalışması

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 run <image> <command>   # Run command
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:

docker run -it <image> bash   # Run command interpreter
<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:

docker run <image> bash -c <command>

Ardından konteyner durumunu kontrol edin:

docker ps

Docker'ı "detached" modunda çalıştırırsanız aynı sonucu elde edebilirsiniz. Sadece -d etiketini kullanın:

docker run <image> bash -c <command>
# Run command docker ps  # Check the running containers

Sonuç

Bu makaleyi okuduktan sonra, senaryonuz bitmiş olsa bile docker konteynerini nasıl canlı tutacağınızı biliyordunuz.