Giriş
Genellikle, Docker konteynerleri yalnızca belirli bir süre boyunca çalışır – komutun çalıştırılması için gereken süre kadar. Konteynerin içinde bulunan verilere, çalışma süresi boyunca yalnızca konteynerin içinden erişilebilir.
Docker birimleri dosyalara kolayca erişmek ve onları daha uzun süre saklamak için kullanılabilir. Örneğin, bir Nginx web sunucunuz varsa ve denetimler için günlükleri saklamak istiyorsanız, konteynerdeki günlükleri ana makinenizde saklamak için bir Docker birimi kullanabilirsiniz.
Bu öğreticide, Docker konteynerinin içi ile ana makine arasında nasıl veri paylaşacağınızı öğreneceksiniz.
Gereksinimler
Bu öğretici için aşağıdaki gereksinimlere ihtiyacınız olacak:
- Ubuntu 18.04 Sunucusu: faydalı öğreticimizi takip ederek Ubuntu 18.04 imajına sahip yeni bir CloudSigma sunucusunu kolayca oluşturabilirsiniz.
- Docker – Ubuntu üzerinde Docker'ın nasıl kurulacağına dair öğreticimizi kullanarak Docker'ı kurabilir ve ona aşina olabilirsiniz.
Adım 1 – Bir Birimi Bağlama (Bind Mount)
Mevcut kullanıcınızın ev dizininde logs adında bir dizin oluşturabilir ve aşağıdaki komutu kullanarak bunu Nginx konteynerindeki /var/log/nginx dizinine bağlayabilirsiniz (bind-mount):
|
1 |
docker run --name=nginx -d -v ~/logs:/var/log/nginx -p 5000:80 nginx |
İşte bu komut hakkında daha ayrıntılı bilgi:
--name=nginxkolay başvuru için konteynere bir isim verir.-dargümanı işlemi ayırır ve arka planda çalıştırır.-v hostPath:containerPathbağlamayı gerçekleştirmek için ana makine yolunu ve konteyner yolunu eşler.-p hostPort:containerPortargümanı, konteynerin portunu ana makine portuna eşler.nginxsatırın sonundaki, konteyneri başlatmak için kullanılması gereken imajın adıdır.
Adım 2 – Ana Makinedeki Verilere Erişme
Şimdi, sunucunuzda çalışan bir Nginx konteyneriniz var ve sunucunuzun 5000 portu Nginx'in 80 portuna eşleniyor. Portu web tarayıcısında aşağıdaki URL ile açabilirsiniz:
|
1 |
http://serverIP:5000/ |

~/logs dizininde access.log ve error.log dosyalarını göreceksiniz. Günlükleri cat komutunu kullanarak görebilirsiniz:
|
1 |
cat access.log |
|
1 2 3 |
Çıktı: xx.xxx.xxx.xxx - - [17/Apr/2021:19:25:05 +0000] "GET / HTTP/1.1" 200 612 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/xx.xxx.xxx.xxx Safari/537.36" "-" xx.xxx.xxx.xxx - - [17/Apr/2021:19:25:05 +0000] "GET /favicon.ico HTTP/1.1" 404 556 "http://xx.xxx.xxx.xxx:5000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/xx.xxx.xxx.xxx Safari/537.36" "-" |
Ana makinenizdeki ~/logs günlük dizinini de kontrol edebilir ve Nginx'in günlük dosyasını bulabilirsiniz. Dahası, logs klasöründe herhangi bir değişiklik yaparsanız, bu değişiklikler konteynerin /var/log/nginx klasörüne de yansıyacaktır.
Sonuç
Bu öğreticide, Docker konteynerinin içi ile ana makine arasında nasıl veri paylaşacağınızı öğrendiniz. Bu, hata ayıklama için günlükleri analiz etmenin şart olduğu geliştirme ortamlarında çok önemlidir.
Docker hakkında blogumuzdaki daha fazla kaynak için aşağıdakilere göz atabilirsiniz:
- Kamu bulutunda Ubuntu üzerinde Docker nasıl kurulur ve çalıştırılır
- CentOS 7 üzerinde Docker Kurulumu ve Yapılandırması
- Docker Kaynaklarını Temizleme – İmajlar, Konteynerler ve Birimler
- CloudSigma üzerinde Docker Nasıl Çalıştırılır (CloudInit ile) Güncellendi
Keyifli Bilişimler!
Yorumlar
Henüz yorum yapılmamış. İlk siz olun.