docker宿主機訪問docker容器服務失敗

2021-09-29 18:42:54 字數 940 閱讀 7382

原因:

因為docker的虛擬ip網段是172.17.*。*與區域網的ip網段172.17衝突了,所以有兩種方式:

解決方法:

一、修改docker網絡卡資訊,將網段改為與區域網不同的即可

linux修改方法:

第一步 刪除原有配置

sudo service docker stop

sudo ip link set dev docker0 down

sudo brctl delbr docker0

sudo iptables -t nat -f postrouting

第二步 建立新的網橋

sudo brctl addbr docker0

sudo ip addr add 172.16.10.1/24 dev docker0

sudo ip link set dev docker0 up

第三步 配置docker的檔案

注意: 這裡是 增加下面的配置

vi /etc/docker/daemon.json##追加下面的配置即可

[root@bogon ~]# cat /etc/docker/daemon.json ##追加的即可

[root@bogon ~]# systemctl restart docker

二、改變網路模式,與宿主機共享乙個網絡卡,

啟動時新增 --net=host

例子:docker run --privileged=true -t -i -p 9103:9103 -p 9104:9104 --net=host -d b87146ecdd6a /bin/bash

檢視docker容器ip:

docker inspect 命令,可以檢視到容器的網路配置

檢視容器的網路方式:

docker network ls

docker訪問宿主機MySQL

docker內部訪問宿主及mysql 有時mysql安裝在宿主機中,而服務在docker容器中,此時可以通過通過以下兩張方式訪問 方法一啟動docker時使用 net host net host這個引數,讓容器執行在宿主機相同的網路 此時可以通過127.0.0.1直接連線mysql 方法二使用doc...

宿主機訪問操作docker方式

一 ssh訪問 啟動的時候需要把22埠隱射出來 docker run t i d p 8091 8080 p 9527 22 name tomcat4 tomcat bases bin bash 二 nsenter 用來訪問另乙個程序的名字空間。nsenter要正常工作需要有root許可權 為了連線...

Docker容器訪問宿主機網路

業務請求量小的時候,我們會把一些工程部署到同一臺機器上。這些工程之間也會相互訪問。如果是http的介面,我們最方便的是使用localhost帶地本機的ip。不過結合docker容器後出現了問題。docker容器中localhost表示容器的ip位址。不是宿主機ip。其實docker容器執行的時候有h...