Merhaba;

Docker Bolum 4’de “Docker Compose” kavramına genel bir giriş yaptık. Hatırlarsanız önceki bölümde, “redis container” oluşturarak “dockerapps container” ı bu “container” a linkledik. Bu örnekte sadece iki tane “container” sözkonusuydu. Eğer elimizde yüzlerce “container” olsa böyle manüel işlem mi yapmamız gerekecek demiştik. Bu sorunu çözmek için “docker-compose.yml” dosyasından bahsettik. Bu bölümde bu konuda biraz daha detaylı çalışacağız.

Öncelikle “docker-compose.yml” dosyasını oluşturduk.

Dockerfile dosyasının içeriğini tekrar kontrol edelim.

Ardından “docker-compose up” komutunu çalıştırmamız gerekiyor.

“docker ps” komutuyla çalışan “container” ları listeleyelim.

“docker-compose.yml” ile bu şekilde “container” ları oluşturmuş olduk. Ek bir linkleme komutu çalıştırmaya gerek kalmadan.

“docker-compose up -d” ile “docker” ları arka planda çalıştırabiliriz.

“docker-compose ps” ile çalışan “container” ları listeleyebiliriz.

“docker-compose logs” komutu ile logları görebiliriz.

“docker-compose logs container_name” ile “container” a özel logları görebiliriz.

“docker-compose stop” ile “container” ları durdurduktan sonra “docker-compose rm” ile ilgili “container” ları silebilirsiniz. Aşağıdaki çıktılar bu işlemleri göstermektedir.

“Container” ları tekrar çalıştıralım.

“Container” a login olalım.

Şimdi, Dockerfile dosyasında bir değişiklik yapalım. Ama öncesinde “container” ları silelim.

Dockerfile’da admin kullanıcısını “asiye” kullanıcı ile değiştirdik.  Tekrar “docker-composer up -d” komutunu kullanalım. Dockerapp “container” a login olalım. Dikkat ederseniz hala “admin” kullanıcısı görünüyor “container” da. Çünkü “docker-compose up” komutu, imaj olduğu için imajı tekrar oluşturmaz. Docker’ı imajı yeniden oluşturmasına nasıl zorlarız? İmajı tekrar oluşturmak için “docker-compose build” komutunu kullanmamız gerekir. Bu komut, Dockerfile’a göre imajları yeniden oluşturur.

“docker-compose up” tekrar çalıştırdığımızda, yeni imaj gördüğü için “container” ı yeniden oluşturur.

İmajı güncellememiz gerektiğinde “docker-compose build” komutunu kullanmamız gerekiyor. “docker-compose” ile ilgili komutları aşağıdaki listede özetlemeye çalıştım.

Komutlar Açıklamalar
docker compose up Container’ları başlatır.
docker compose ps “docker compose” un yönettiği “container” ların statüsünü kontrol eder.
docker compose logs “docker compose” un yönettiği “container” lar için logları gösterir.
docker compose logs -f Loglara gelen eklemeleri gösterir.
Docker compose logs container_name İlgili container’a ait logları gösterir.
docker compose stop Çalışan “container” ları durdurur.
docker compose rm “container” ları siler.
docker compose build İmajları yeniden oluşturur.

Docker’ın kullandığı network türlerinden bahsedelim. Kullandığı varsayılan network “bridge” network’tür (Şekil 1).

Şekil 1. Varsayılan docker network türü.

Docker’ın kullandığı network türlerini aşağıdaki şekilde sıralayabiliriz.

“Closed Network”/”None Network”

“Bridge Network”

“Host Network”

 

Sistem üzerinde “docker network ls” komutuyla “network” türlerini görebiliriz.

Network ile ilgili detaya gelecek bölümde gireceğim.

 

Asiye Yiğit 7 Temmuz 2017