"Enter"a basıp içeriğe geçin

Konteyner Yayımlama (Nginx)

Last updated on 10 Eylül 2020

Bazı docker komutları aracılığıyla konteynerimize nasıl erişeceğimizi biliyoruz, ancak ya konteynerimizi daha WAN paylaşmak istiyorsak? Docker bize konteynerlarımızı ana makinemizdeki bir bağlantı noktasına yayınlama seçeneği sunarak uygulamalarımızı ve hizmetlerimizi paylaşmamıza veya başka şekilde test etmemize izin verir.

Başlamadan önce, gerçekten kontrol edebileceğimiz ve web sunucumuz için bir ana sayfası oluşturabileceğimiz bir dosyamız olduğundan emin olalım.

vim index.html
Hello, World!

Dosyayı kaydedip çıkın, ardından onu konteynera kopyalayalım.

docker cp index.html web01:/var/www/

Nginx’i başlatın.

docker exec web01 nginx -g 'pid /tmp/nginx.pid; daemon off;'

Şimdi bunun işe yarayıp yaramadığını görelim. Şu anda, konteynırımıza yalnızca ana bilgisayarımızdan erişilebiliyor. Özellikle, ana bilgisayara erişmek için kullanabileceğimiz özel bir ağ var. Bu nedenle, web yapılandırmamızın çalışıp çalışmadığını görmek için, konteynerin özel IP’sini kıvırabiliriz. Ama önce özel IP’yi bulmalıyız. Bunu docker inspect ile bulabiliriz.

docker inspect web01
docker inspect web01 | grep IP

Bu, konteynerımız hakkında genel durumu, genel yapılandırma ve ağ oluşturma dahil olmak üzere çeşitli bilgiler verir. IPAddress değerini bulup, ardından her şeyin çalışıp çalışmadığını görmek için curl komutunu kullanalım.

Web konteynerımız çalışmakta ancak şimdi bir sorunla karşılaştık: mevcut bir konteynerı ana makinemizdeki bir bağlantı noktasına yayınlayamıyoruz, en azından Docker aracılığıyla yayınlayamıyoruz. Bunun yerine, bu konteynerın bir kopyasıyla çalışmamız gerekecek.

Öncelikle, konteynırımıza dayalı bir imaj oluşturmamız gerekecek. Bunu aşağıdaki komut ile yapabiliriz:

docker commit web01 web-base

Daha sonra konteynerimizi docker run ile çalıştırabiliriz. Sadece bu sefer, ana bilgisayar bağlantı noktasını kapsayıcıya eşlemek için özellikle –port veya -p komutunu kullanmak istiyoruz.

docker run -p 80:80 -dt --name web02 web-base

Ayrıca nginx’i yeniden başlatmamız gerekebilir.

docker exec web02 rc-service nginx restart

Artık localhost’umuzun genel IP’sine gidebilir ve index.html dosyamızı görebiliriz.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir