docker ——從docker容器的內部,連接本機的mysql


所以我有一個Nginx運行在一個docker容器,我有一個mysql運行在localhost,我想連接到我的Nginx內的MySql。 MySql在localhost上運行,並且不將端口暴露給外部世界,因此其綁定在localhost上,而不是綁定在機器的ip地址上。

有沒有辦法連接到這個MySql或任何其他程序在localhost從這個docker容器?

 

docker run –net ="bridge"(默認)

默認情況下,Docker創建一個名為docker0的網橋。 Docker主機和Docker容器在該網橋上都有一個IP地址。

使用ip addr show docker0  能看到相關ip

在這個模式下,docker與主機的網絡是不互通的,docker 及docker下的容器之間個地址相同 (同ip段)

外網訪問只能通過端口映射

如果docker nginx需要連本機mysql , 只能將mysql的3306端口打開,通過外網去連接

 

docker run –net ="host"  //主機模式

這樣的容器將與docker主機共享網絡堆棧,從容器的角度來看,localhost(或127.0.0.1)將引用docker主機。

 請注意,在docker容器中打開的任何端口都將在docker主機上打開。而這不需要-p or -P docker run option

 

http://www.voidcn.com/article/p-uvkusivz-bsg.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM