docker 連接埠映射 有點蒙圈 誰給解釋一下
ringa_lee
ringa_lee 2017-04-25 09:01:39
0
3
2984

docker 連接埠映射 有點蒙圈 誰給解釋一下

ringa_lee
ringa_lee

ringa_lee

全部回覆(3)
淡淡烟草味

容器間互相存取需在容器建立時使用--link參數,並且最好被連接的容器已經命名過。

docker run --name mysql .......
docker run --name php --link mysql .......
docker run --name nginx --link php .......

以這種方式啟動時,只需要在程式內使用對應的容器名稱即可存取對應的服務。
例如 fastcgi_pass php:9000;

如果是對外暴露端口,需要通過-p或-P參數,最好使用-p。
docker run --name nginx -p 80:80 -p 443:443 .......
這樣瀏覽器就能存取到這台伺服器提供的Web服務了。

大家讲道理

端口映射:
就是選擇一個你本機的端口映射到你的容器的一個端口,這樣若有請求來到,訪問你本機的那個被映射的端口,這個時候就會將請求轉發到容器的那個端口,依靠容器裡的服務來處理請求。

為什麼要有連接埠映射?
你的本機IP是個公網ip,例如1.2.3.4;但本機的容器的ip是個虛擬ip,例如172.17.0.2。外界是無法直接存取你的容器的服務的,這個時候就透過存取本機的連接埠來達到使用容器中服務的目的。

我想大声告诉你

不知道所謂的「蒙圈」具體是指什麼。
簡單的說類似於NAT的原理,如果需要宿主機網路能夠存取到容器提供的服務,需要將容器的連接埠暴露在宿主機網路中。
常用語法是在執行"都docker run"時帶上參數"-p host_port:container_port"。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板