亚洲视频二区_亚洲欧洲日本天天堂在线观看_日韩一区二区在线观看_中文字幕不卡一区

公告:魔扣目錄網(wǎng)為廣大站長(zhǎng)提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.430618.com 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

目錄
  • 問題描述
  • 問題分析
  • 問題解決
  • 總結(jié)

問題描述

部署了一個(gè)Docker環(huán)境,宿主機(jī)可以訪問Internet,啟動(dòng)了一個(gè)容器發(fā)現(xiàn)容器里的服務(wù)無法訪問Internet,Docker網(wǎng)絡(luò)使用的是橋接(bridge)模式。

問題分析

使用Docker橋接模式啟動(dòng)的容器,宿主機(jī)如果可以訪問外網(wǎng),按理來說Docker容器本身也可以訪問外網(wǎng)的。其原理:容器網(wǎng)卡與宿主機(jī)的docker0網(wǎng)橋互聯(lián),在通過nat的轉(zhuǎn)換,通過宿主機(jī)的網(wǎng)卡,連接到外網(wǎng)。那可以初步判斷容器內(nèi)部訪問不了外網(wǎng),可能是某些配置的原因。

問題解決

檢查docker bridge網(wǎng)絡(luò)配置:

# docker network inspect bridge 
[
    {
        "Name": "bridge",
        "Id": "52d99eec11c4706581e4b8235613d5258ef2c318557baddbb79766136d7b0868",
        "Created": "2022-10-22T19:31:19.358514137+08:00",
        "Scope": "local",
        "Driver": "bridge",
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": null,
            "Config": [
                {
                    "Subnet": "172.17.0.0/16",
                    "Gateway": "172.17.0.1"
                }
            ]
        },
        "Internal": false,
        "Attachable": false,
        "Ingress": false,
        "ConfigFrom": {
            "Network": ""
        },
        "ConfigOnly": false,
        "Containers": {},
        "Options": {
            "com.docker.network.bridge.default_bridge": "true",
            "com.docker.network.bridge.enable_icc": "true",
            "com.docker.network.bridge.enable_ip_masquerade": "false",
            "com.docker.network.bridge.host_binding_ipv4": "0.0.0.0",
            "com.docker.network.bridge.name": "docker0",
            "com.docker.network.driver.mtu": "1500"
        },
        "Labels": {}
    }
]

發(fā)現(xiàn):com.docker.network.bridge.enable_ip_masquerade值為false,代表是否開啟IP偽裝,false代表未開啟。

查看docker服務(wù)啟動(dòng)命令:

#ps -ef|grep dockerd
root     15273     1  6 11:35 ?        00:14:25 /usr/bin/dockerd --iptables=false --exec-opt native.cgroupdriver=systemd --data-root=/var/lib/docker --log-opt max-size=50m --log-opt max-file=5

發(fā)現(xiàn)參數(shù):–iptables=false,查閱docker官網(wǎng):

Docker容器內(nèi)部無法訪問外網(wǎng)原因以及解決辦法

 大概意思是否禁止docker進(jìn)程添加iptables規(guī)則,false代表禁止,禁止后即使開啟IP偽裝也不生效。可以猜到就是這個(gè)參數(shù)搞的問題。

Docker服務(wù)是yum install部署的,可能有些參數(shù)讀取的一些預(yù)先定義的包環(huán)境變量里。

讓我們將–iptables改為true,最簡(jiǎn)單的方式就是覆蓋原啟動(dòng)命令中的參數(shù),在docker啟動(dòng)命令最后添加–iptables=true:

# vim /etc/systemd/system/docker.service
[Unit]
Description=Docker Application Container Engine
Documentation=http://docs.docker.com
After=network.target  containerd.service
BindsTo=containerd.service
[Service]
Type=notify
Environment=GOTRACEBACK=crash
ExecReload=/bin/kill -s HUP $MAINPID
Delegate=yes
KillMode=process
ExecStart=/usr/bin/dockerd \
          $DOCKER_OPTS \
          $DOCKER_STORAGE_OPTIONS \
          $DOCKER_DNS_OPTIONS \
          --ip-masq=true \
          --iptables=true
LimitNOFILE=1048576
LimitNPROC=1048576
LimitCORE=infinity
TimeoutStartSec=1min
# restart the docker process if it exits prematurely
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
[Install]
WantedBy=multi-user.target

然后重啟docker進(jìn)程: 

# systemctl daemon-reload
# systemctl restart docker

然后發(fā)現(xiàn),容器內(nèi)部可以訪問外網(wǎng)了~~~

參考資料:dockerd | Docker Documentation

—————————————————————————————————

查閱官網(wǎng)發(fā)現(xiàn):iptables默認(rèn)值是true的,應(yīng)該是yum源下載的包里啟動(dòng)命令加了這個(gè)參數(shù)而且改成了false,這也是導(dǎo)致容器內(nèi)部無法訪問外網(wǎng)的原因之一。

總結(jié)

分享到:
標(biāo)簽:原因 容器 無法訪問 服務(wù)器 解決辦法
用戶無頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫(kù),初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績(jī)?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績(jī)?cè)u(píng)定