Herkese merhaba!

Uzun yıllardır bol miktarda kişisel zaman ve enerji harcayarak bilgimizi hepinizle paylaşıyoruz. Ancak şu andan itibaren bu blogu çalışır durumda tutabilmek için yardımınıza ihtiyacımız var. Yapmanız gereken tek şey, sitedeki reklamlardan birine tıklamak olacaktır, aksi takdirde hosting vb. masraflar nedeniyle maalesef yayından kaldırılacaktır. Teşekkürler.

Bu örnek bize ana bilgisayar işletim sistemine docker container içinden nasıl erişilebileceğini gösterecek. Linux ana bilgisayarda çalışan Nginx web sunucusuna docker container içinden erişeceğiz.


Ana işletim sistemi - Nginx durumu


vagrant@docker:~$ sudo service nginx status
● nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled)
Active: active (running) since Thu 2018-05-31 05:45:03 BST; 9s ago
Main PID: 12171 (nginx)
CGroup: /system.slice/nginx.service
├─12171 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
├─12172 nginx: worker process
├─12173 nginx: worker process
├─12174 nginx: worker process
└─12175 nginx: worker process

Docker container tarafından da bilinen ana işletim sisteminin IP adresini kontrol edin.


vagrant@docker:~$ ip addr show docker0
4: docker0: mtu 1500 qdisc noqueue state UP group default
link/ether 02:42:4b:18:b4:1b brd ff:ff:ff:ff:ff:ff
inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
valid_lft forever preferred_lft forever
inet6 fe80::42:4bff:fe18:b41b/64 scope link
valid_lft forever preferred_lft forever

vagrant@docker:~$ ip addr show docker0 | grep -Po 'inet \K[\d.]+'
172.17.0.1

Yani 172.17.0.1 adresini, ana bilgisayar işletim sistemiyle konuşmak için docker container içinde kullanacağımız.


Container


Docker containerin ana işletim sisteminin IP adresini gerçekten bilip bilmediğini kontrol edelim.


docker-container # ip route show
default via 172.17.0.1 dev eth0
172.17.0.0/16 dev eth0 scope link src 172.17.0.2

Şimdi containerin ana işletim sistemi ile konuşup konuşamayacağını test edelim.


docker-container # curl -I 172.17.0.1
HTTP/1.1 200 OK
Server: nginx/1.6.2
Date: Thu, 31 May 2018 04:45:59 GMT
Content-Type: text/html
Content-Length: 867
Last-Modified: Thu, 31 May 2018 04:45:03 GMT
Connection: keep-alive
ETag: "5b0f7dcf-363"
Accept-Ranges: bytes

Not


Mac OS kullanıcıları IP yerine sadece docker.for.mac.host.internal veya docker.for.mac.localhost kullanabilirler.