Ana sayfa » Container’ları Detached Modda Çalıştırmak | Detached, Logs, Follow Komutları

Container’ları Detached Modda Çalıştırmak | Detached, Logs, Follow Komutları

by ozarci

İlk DevOps senaryomuzu oluşturduğumuzda, container’larmız terminale bağlı kalmak zorundaydı; yani terminal üzerinde bir container ayağa kaldırdığımızda o terminal ayağa kalkan o containere ayrılır ve başka işlem yaptırmaz.
Detached mode, bize container’ın terminale bağlı kalmadan arka planda run edilmesini sağlar.
Peki bunu nasıl yapıyoruz?
Bir imajı container olarak ayağa kaldırırken kullandığımız kod satırına sadece -d işaretçisi eklememiz yeterli olacak, bunu bir örnekte gösterelim, bir container ayağa kaldıralım:

docker run -d -p 5000:5000 ozanzarci/hello-world-java:0.1

Detached modda başlattığımız için, bu container’a ait bir günlük göremeyiz ve birkaç saniye sonra terminal tekrar komut almaya hazır hale gelir:

Ayrıca bir browser penceresi açıp adres satırına localhost:5000 yazdığınızda container’ın ayakta olduğunu göreceksiniz.
Şimdi yine aynı terminalde başka bir container ayağa kaldıralım, yine detached modda yapacağız: (port numarasını değiştiriyoruz, çünkü şuan 5000 portu dolu)

docker run -d -p 5001:5000 ozanzarci/hello-world-python:0.1

Aynı şekilde terminal birkaç saniye sonra komut almaya hazır hale geldi, şuan terminalden bağımsız iki ayrı portta iki ayrı container run durumda, bir browser sekmesi daha açıp localhost:5001 yazdığınızda container’ın ayakta olduğunu göreceksiniz.
Bir container’a yapılan tüm bağlantıları görmek isteyebilirsiniz, bunun için o containere ait bir log kaydı tutmalısınız, bunu logs komutuyla yapıyoruz, izlemek istediğimiz container id’sini bilmemiz yeterli, container id, benzersizdir ve asla başka bir container id ile eşleşmez, örneğin bendeki id aşağıdaki gibidir, sizdeki de aynı yerde fakat başka bir id’de olacaktır:

Yukarıdaki Python run eden container log kaydını takip etmek istiyor olalım, bunun için docker logs komutunun devamına container id’sini yazacağız:

docker logs 66f8f6fa3d3884e78fd69911d7242419f3f74d5e89ce822d49fa8b4893361e5e

Sizdeki container id farklı olacaktır, bu satırı yazdığınızda *Debugger is active! bildirmini gördüğünüzde log tolamaya başladınız demektir. Satırı yazdıktan sonra aşağıdaki gibi bir çıktı alacaksınız:

Püf nokta: Container id benzersiz olduğundan ve id’ler çok uzun olduğundan, bir container id’si girerken sadece ilk 4 karakterni bile girmeniz yeterli olacaktır: docker logs 66f8f şeklinde.

Pyhon container’ımızın loglarını tutmaya başladık, şimdi de bu loglar terminal ekranımızdan anlık olarak görmek istediğimizi varsayalım, bunun için de follow, yani -f işaretçisiyle yapacağız; yine aynı şekilde loglarını tuttuğumuz container’ın id’sini kullanacağız, bu sefer id’nin ilk 4 hanesini yazacağız kolaylık olması açsından:

docker logs -f 66f8f

Bu komutu yazdıktan sonra artık terminalde o container’a yapılan tüm bağlantıları takip edebiliyor olacaksınız, örneğin yukarıdaki container’ımız 5001 portunda ayakta, browserdan localhost:5001 adresine her girdiğinizde (refresh etseniz bile) bunu başarılı bir bağlantı isteği olarak kabul edecek ve 200 değeri döndürecek, aşağıdaki gibi:

Buraya kadar Detached modda container ayağa kaldırmayı gördük, aynı terminalde birden çok container run edebildik, takip etmek istediğimiz bir container için log kayıtları tuttuk ve o kayıtları anlık olarak takip ettik.

Sonraki yazımızda görüşmek üzere.

İlgini Çekebilir

0 0 votes
Article Rating
Subscribe
Bildir
guest
0 Yorum
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x