⑴ docker desktop中的容器與宿主機的區域網絡通信
兩台docker容器做datanode,當時配置Docker網路時,使用了Bridge模式,docker0網段(172.0.1.x),宿主機網段(192.1.1.x),使用外部客戶端請求下載HDFS文件,去指定的datanode上拉去數據時,外部客戶端無法連接到內部的docker容器,拋出的等待超時異常,並重試下載,更換請求的下載地址為可連接的宿主機datanode後, 才成功下載數據。
於是,想要對docker的網路配置進行修改,將docker容器的IP地址設置成與宿主機同網段,並且相互連通。
這里先要來說一下docker網路的四種方式:
1.Host模式:
Host 模式並沒有為容器創建一個隔離的網路環境。
該模式下的Docker 容器會和Host宿主機共享同一個網路namespace, Docker Container可以和宿主機一樣,使用宿主機的eth0,實現和外界的通信。
Host模式特點包括:
容器沒有隔離的 network namespace
容器的 IP 地址同 Docker host 的 IP 地址
注意:容器中服務埠號不能與Host宿主機上已經使用的埠號相沖突
host 模式能夠和其它模式共存
2.Container模式
Container網路模式是 Docker 中一種較為特別的網路的模式。處於這個模式下的 Docker 容器會共享其他容器的網路環境,因此,至少這兩個容器之間不存在網路隔離,而這兩個容器又與宿主機以及除此之外其他的容器存在網路隔離。
3.None模式
None 網路就是什麼都沒有的網路。掛在這個網路下的容器除了 lo,沒有其他任何網卡。需要我們自行去配置。