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
[…] https://asiyeyigit.com/docker-bolum-5/ […]
[…] https://asiyeyigit.com/docker-bolum-5/ […]