1. 程式人生 > >Docker 容器與宿主機網段衝突導致網路無法 ping 通的解決方案

Docker 容器與宿主機網段衝突導致網路無法 ping 通的解決方案

docker 容器網路預設使用 bridge 橋接模式,正常情況下,容器會使用 daemon.json 中定義的虛擬網橋來與宿主機進行通訊。

最近更新 Docker for mac 之後,發現以前容器中可以訪問的區域網內服務(使用宿主機所在的區域網 IP 訪問),變得不可訪問了。一開始以為是新版本改了預設網路配置,查了半天 release log 並沒有找到相關條目。

後來在同事的幫助下發現問題所在:

由於換了新的工位,宿主機的區域網 IP 網段由 172.16.*.* 切換到了 172.17.*.* ,剛好和 docker 虛擬網橋 IP 段 172.17.*.* 衝突。

解決問題的辦法也很簡單:

1、如果是  Docker for mac,開啟 Preferences -> Daemon -> Advanced ,修改(或增加)配置 {"bip" : "172.16.10.1/24"} ,從而避免網段衝突的問題;

2、Linux 版本的 docker 配置,請參看這裡:《Docker 修改預設的網段

另外在問題解決的過程當中,發現了一些知識點:

1、docker-compose 的網路配置欄位為 network_mode: "host" 而非 net: "host"

2、docker for mac 的容器裡可以通過 docker.for.mac.host.internal 域名直接訪問宿主機服務

3、docker inspect <container_id> 命令,可以檢視到容器的網路配置

相關推薦

Docker 容器宿主衝突導致網路無法 ping 解決方案

docker 容器網路預設使用 bridge 橋接模式,正常情況下,容器會使用 daemon.json 中定義的虛擬網橋來與宿主機進行通訊。 最近更新 Docker for mac 之後,發現以前容器中可以訪問的區域網內服務(使用宿主機所在的區域網 IP 訪問),變得不可訪問了。一開始以為是新版本改了預設網

DOCKER容器宿主互相通訊

相關閱讀: 博主最近在解決docker與宿主機同網段通訊的問題,寫此文章記錄一下整個過程。 遇到的問題 博主用兩臺docker容器做datanode,當時配置Docker網路時,使用了Bridge模式,docker0網段(172.

docker容器宿主之間內容拷貝

從容器內拷貝檔案到主機上 docker cp <containerId>:/file/path/within/container /host/path/target 例如: [[email protected] hadoop]# docke

docker容器宿主間時間不一致問題

十點多問題: 通過掛載anyproxy過濾規則檔案目錄、log目錄的方式啟動容器,docker容器的時間和宿主機時間不一致,導致記錄的log檔案中的時間有誤,不便檢視log日誌。 解決: 解決辦法通過掛載本地 localtime啟動容器,-v /etc/l

docker容器宿主的資料互動

  在生產環境中使用 Docker ,往往需要對資料進行持久化,或者需要在多個容器之間進行資料共享,這必然涉及容器的資料管理操作。 方式一、Docker cp命令 docker cp :用於容器與主機之間的資料拷貝。 語法 # 容器內檔案 copy to 宿主機 docker cp [OPTIONS] CO

如何讓docker容器宿主在一個,並組成區域網

假設我們有 A , B , C 3臺機器 A: 192.168.1.10 B: 192.168.1.11 C: 192.16

如何在docker容器宿主之間複製檔案

直接上程式碼 sudo docker cp txcrm2:/home/log/production.log /system/logs ##仔細看 txcrm2是映象id ,後面就是檔案路徑

dockerdocker容器宿主之間檔案互傳,互相拷貝

原文地址:https://www.cnblogs.com/areyouready/p/8973495.html     【注意:命令中符號均為英文符號】 1、從容器裡面拷檔案到宿主機      答:在宿主機裡面執行以下命令    

docker系列-07.docker容器宿主相互拷貝檔案

1.從docker容器中將檔案拷貝到宿主機: docker cp 容器名:容器中的檔案路徑 要拷貝到宿主機中的檔案路徑 例: docker cp elk:/etc/pki/tls/priva

Docker容器完美對映 tomcat釋出war專案

一、建立/docker_volume_tomcat資料夾後,檢視全部映象。如圖:二、將本機和容器掛在,如圖:三、在/docker_volume_tomcat下新建一個test.txt檔案。如圖:.三、進

Linux 不同兩臺主機相互ping

[[email protected] ~]$ ping 10.11.12.202 PING 10.11.12.202 (10.11.12.202) 56(84) bytes of data. 64 bytes from 10.11.12.202: icmp_seq=1 ttl=63 time=0.9

Docker容器中MySQL最大連接數被限制為214的解決方案

wan tin lease 有一點 ria preview eating phoenix 感謝 原文:Docker容器中MySQL最大連接數被限制為214的解決方案

虛擬機器主機無法ping解決方式彙總

一,ip地址問題         1,純粹的ip地址寫錯                    這種情況要先檢查自己主機和虛擬機器的ip地址 &nb

Serv-U佔用IIS的80埠造成衝突導致iis無法執行的解決方法(serv_u6-8版本)

今天有朋友反映一臺伺服器的iis無法運行了,原來是因為serv_u佔用了iis的80埠。我們是怎麼發現serv_u佔用iis的80埠的呢,大家可以參考指令碼之家的這篇文章 IIS 另一個程式正在使用此檔案,程序無法訪問。 如何檢視哪個程式打開了tcp 80埠呢?使用“開放

關於AndroidStudio在真安裝的apk閃退(無法開啟)的解決方案

問題描述: 重新安裝AndroidStudio之後 1、發現在真機上安裝apk時顯示的是應用包名。 2、在真機上安裝的apk無法開啟,一直閃退。 如圖:   解決方案: 關閉AndroidStudio的Instant Run即可。 位置:File -> Settings -> Bui

docker學習7--宿主容器時間不一致問題

    啟動一個以centos為基礎的映象,進入容器內date '+%Y-%m-%d %H:%M:%S'檢視時間,發現容器時間和宿主機不一致。     一臺宿主機可以有多個docker容器,宿主機的

Linux 主機虛擬橋制作卡鏈路聚合

linux 基礎運維學習一、網橋制作1、主機的網橋制作 刪除主機的/etc/sysconfig/network-scripts/ifcfg-enp0s25 在/etc/sysconfig/network-scripts/ifcfg-br0目錄下添加文件 #編輯主機的物理網卡文件 vim /etc

Docker修改默認的

json tab out ble family add normal ola dao 第一步 刪除原有配置sudo service docker stop sudo ip link set dev docker0 down sudo brctl delbr docker0

docker:(3)docker容器掛載宿主主機目錄

有一項重要的引數 -v 目錄掛載,就是讓容器內部目錄和宿主主機目錄關聯起來,這樣就可以直接操作宿主主機目錄而不用再操作具體容器了 比如在2中,我們要釋出一個war包,是通過   sudo docker cp demo.war tomcat_xiao:/usr/local/

docker容器大資料元件的衝突點

1.容器裡面安裝spark,外面的程式(安裝spark主機的容器)會連線不上叢集。理由:這個元件用的akka,連線上叢集,會提示: akka.ErrorMonitor: dropping message [class akka.actor.ActorSelectionMessage] for non-loc