在企业数字化转型过程中,Docker 作为一种罕用的容器技术,一个十分弱小的性能就是通过端口映射将容器内的服务公布到内部。
然而,有时候咱们会遇到无奈从内部拜访容器外部文件的问题,导致服务无奈失常运行。上面将对这个问题进行深刻分析并给出解决方案。
一、问题形容:
我在服务器上启动了个 nginx:latest 的容器,应用命令如下:
[root@Hangz-Ecs1 ~]# docker run -id -p 8080:80 --name my_nginx nginx:latest
66559ae47822bcab638f12855d24f2b0beba51b24aa642c461f4ed2bb5de36c9
docker 启动之后,应用 netstat -ntalp | grep 8080 发现端口监听胜利
[root@Hangz-Ecs1 ~]# netstat -ntalp | grep 8080
tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 1439/docker-proxy
tcp6 0 0 :::8080 :::* LISTEN 1443/docker-proxy
而后就到客户机去发动申请发现申请不胜利,提醒连贯失败,而后应用 telnet 发现 8080 端口不通,这个时候去查看 firewalld 和 selinux 发现都是处于敞开状态,在服务器上 telnet8080 端口发现失常通信,应用 iptables -t nat - L 查看 iptables 转发失常,然而就是不通
[root@Hangz-Ecs1 ~]# iptables -t nat -L
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
DOCKER all -- anywhere anywhere ADDRTYPE match dst-type LOCAL
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
DOCKER all -- anywhere !loopback/8 ADDRTYPE match dst-type LOCAL
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
MASQUERADE all -- 172.18.0.0/16 anywhere
MASQUERADE all -- 172.17.0.0/16 anywhere
MASQUERADE tcp -- 172.18.0.2 172.18.0.2 tcp dpt:10514
MASQUERADE tcp -- 172.18.0.10 172.18.0.10 tcp dpt:webcache
MASQUERADE tcp -- 172.17.0.2 172.17.0.2 tcp dpt:http
Chain DOCKER (2 references)
target prot opt source destination
RETURN all -- anywhere anywhere
RETURN all -- anywhere anywhere
DNAT tcp -- anywhere localhost tcp dpt:fujitsu-dtcns to:172.18.0.2:10514
DNAT tcp -- anywhere anywhere tcp dpt:http to:172.18.0.10:8080
二、解决办法:
依据下面问题排查剖析后,最初发现是转收回问题了,Linux 转发是要开启内核转发性能 net.ipv4.ip_forward 的,于是查看内核转发是否关上
[root@Hangz-Ecs1 ~]# sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 0
这里发现内核转发是处于敞开状态的(0 代表内核转发没有关上)
这里手动 echo 命令开启内核转发,并再次查问内核转发是否开启
[root@Hangz-Ecs1 ~]# echo 1 > /proc/sys/net/ipv4/ip_forward
[root@Hangz-Ecs1 ~]# sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 1
这样子就代表咱们的内核转发曾经能够失常应用了!
对于奇墨 ITQM
奇墨科技是全域数字资产品质治理平台及服务商,在寰球翻新提出了 ITQM 理念并自研了奇墨 ITQM 平台、ACS 全云服务、QAPI、QTools 工具等一系列数智化产品与服务,目前已帮忙大量世界 500 强企业低成本引入全新 IT 治理体系和晋升数字化治理能力。
旗下的奇墨 ITQM 平台,是业界第一批胜利通过中国信通院《可信云•云老本优化工具能力要求第二局部 混合多云老本优化工具》评估的 IT 治理平台,可为企业提供 FinOps 老本优化、AIOps 智能运维、全云治理、数据安全等 QAPI 能力,并通过自上而下的数字化管理模式、自动化的运维治理流程、专业化的解决方案与服务,助力企业减速“业务 - 技术 - 组织”之间的高效连贯和协同,无效升高云老本收入、进步 IT 资源利用率和优化数字化业务决策,全面企业晋升数字化价值。