宿主機網絡中其它機器與Docker容器網絡互通配置


前言

目前項目采用微服務架構進行開發,Nacos和其它服務部署到Docker中,Docker中容器采用的網絡默認是橋接模式(Bridge),默認的子網碼是172.17.0.1/16;宿主機是192.168.1.231;同宿主機其它網絡也是192.168.1.39;同事提出本地機器想與Docker中容器互通,訪問方式如下:
本地機器直接ping 容器IP(172.17.0.5)是訪問不通的,因為處於不通的網段,在百度上查找了半天也沒有找到合適的方法,自己通過摸索,采用macvlan+docker network connect進行連接。

1. docker的macvlan網絡創建

在Docker 宿主機執行如下命令:

 docker network  create  -d macvlan \
    --subnet=192.168.1.0/16 \
    --gateway=192.168.1.1 \
    -o parent=eth33 macvlan10

通過以下命令查找docker網絡命令如下:

docker network ls

可以看到macvlan10已經在該列表中,說明該命令已經成功

2. 把Docker中容器加入到macvlan10網絡中

docker network connect macvlan10 容器ID/名稱

3. 驗證

在本機執行 ping 容器IP,可以看到已經互通

4. 總結

在完成以上操作之后,可以通過docker inspect 容器ID,可以看到在容器的網絡配置中增加了macvlan10網關的配置,如下:

希望能夠給大家幫助,如果還有更好的方法,還希望大家分享!
堅持寫博客

以上配置之后,會出現macvlan模式容器與宿主機通信問題,可以通過如下配置進行設置
【Docker】macvlan網絡模式下容器與宿主機互通
https://rehtt.com/index.php/archives/236/


免責聲明!

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



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