亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

 更新時間:2023年06月25日 08:48:00   作者:-小末  
最近在工作時遇到一個問題,這里給大家總結下,這篇文章主要給大家介紹了關于Docker容器內(nèi)部無法訪問外網(wǎng)原因以及解決辦法,文中給大家介紹的非常詳細,需要的朋友可以參考下

問題描述

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

問題分析

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

問題解決

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

# 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服務啟動命令:

#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進程添加iptables規(guī)則,false代表禁止,禁止后即使開啟IP偽裝也不生效。可以猜到就是這個參數(shù)搞的問題。

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

讓我們將--iptables改為true,最簡單的方式就是覆蓋原啟動命令中的參數(shù),在docker啟動命令最后添加--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進程: 

# systemctl daemon-reload
# systemctl restart docker

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

參考資料:dockerd | Docker Documentation

---------------------------------------------------------------------------------------------------

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

總結

到此這篇關于Docker容器內(nèi)部無法訪問外網(wǎng)原因以及解決辦法的文章就介紹到這了,更多相關Docker容器內(nèi)部無法訪問外網(wǎng)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 本地使用docker打包部署鏡像的方法

    本地使用docker打包部署鏡像的方法

    這篇文章主要介紹了本地使用docker打包部署鏡像的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-12-12
  • 詳解給Ocelot做一個Docker鏡像

    詳解給Ocelot做一個Docker鏡像

    這篇文章主要介紹了詳解給Ocelot做一個Docker鏡像,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-04-04
  • Docker安裝mysql并解決中文亂碼問題

    Docker安裝mysql并解決中文亂碼問題

    本文主要介紹了Docker安裝mysql并解決中文亂碼問題本人親自測試,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • Docker service命令詳解(小結)

    Docker service命令詳解(小結)

    這篇文章主要介紹了Docker service命令詳解(小結),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-08-08
  • docker搭建devops(騰訊云輕量應用服務器)教程

    docker搭建devops(騰訊云輕量應用服務器)教程

    這篇文章主要為大家介紹了docker搭建devops(騰訊云輕量應用服務器)教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-11-11
  • Ubuntu 16.04中Docker的安裝和代理配置教程

    Ubuntu 16.04中Docker的安裝和代理配置教程

    這篇文章主要給大家介紹了在Ubuntu 16.04中Docker的安裝和代理配置的相關資料,文中介紹的非常詳細,對大家具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧。
    2017-05-05
  • 使用docker更改容器內(nèi)root密碼的操作

    使用docker更改容器內(nèi)root密碼的操作

    這篇文章主要介紹了使用docker更改容器內(nèi)root密碼的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • 使用Docker Swarm搭建分布式爬蟲集群的方法示例

    使用Docker Swarm搭建分布式爬蟲集群的方法示例

    這篇文章主要介紹了使用Docker Swarm搭建分布式爬蟲集群的方法示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-10-10
  • 關于Docker部署postgresql數(shù)據(jù)庫的問題

    關于Docker部署postgresql數(shù)據(jù)庫的問題

    這篇文章主要介紹了Docker部署postgresql數(shù)據(jù)庫的相關知識,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-03-03
  • ubuntu14.04+docker的安裝及使用

    ubuntu14.04+docker的安裝及使用

    這篇文章主要介紹了在ubuntu14.04中安裝docker的方法以及docker的使用指南,非常簡單實用,有需要的朋友可以參考下
    2014-10-10

最新評論