Linux下Docker容器访问宿主机网络

0.背景

Docker的基本使用

docker启动时,如果创建了自定义的docker网络:

将容器run在该网络中时,容器访问的localhost不是宿主机的localhost.

1.解决

1.1 启动时该为host网络模式启动

--network host

示例

# host网络模式,无需映射端口. (\表示换行) docker run -d --name konga --network host\ -e "NODE_ENV=production" \ -e "DB_ADAPTER=mysql" \ -e "DB_URI=mysql://root:123456@172.18.0.1:5432/konga" \ pantsel/konga

1.2 修改localhost为docker网络的ip

1.2.1 查看docker下的网络

# 查看docker网络信息 docker network ls # 控制台显示 # DRIVER参数代表网络类型. NETWORK ID NAME DRIVER SCOPE e34f9fddb6bd bridge bridge local e3e320be538b host host local 8a1dd9a77350 none null local e01f2aaa9bf5 test_network bridge local cbb7bbd9dd54 test_network2 bridge local

1.2.2 查看指定网络的信息

  • 查看docker0

Docker启动的时候会在主机上自动创建一个docker0网络,实际上是一个Linux网桥.

如果在docker run的时候,没有指定网络模式时.

此时都会挂载到docker0网桥上,这样容器就可以和主机甚至是其他容器之间通讯了.

# 查看docker0的ip信息 ip addr show docker0 # 控制台显示 3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default link/ether 02:42:8c:08:a0:f9 brd ff:ff:ff:ff:ff:ff inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0 valid_lft forever preferred_lft forever inet6 fe80::42:8cff:fe08:a0f9/64 scope link valid_lft forever preferred_lft forever
  • 查看test_network
# docker中查看test_network网络的信息 docker network ls | grep test # 控制台显示 e01f2aaa9bf5 test_network bridge local cbb7bbd9dd54 test_network2 bridge local # 其实就是NETWORKID加上了个br ip addr show br-e01f2aaa9bf5 # 控制台显示 16: br-e01f2aaa9bf5: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default link/ether 02:42:44:31:54:fc brd ff:ff:ff:ff:ff:ff inet 172.18.0.1/16 brd 172.18.255.255 scope global br-e01f2aaa9bf5 valid_lft forever preferred_lft forever

1.2.3 查看所有网络信息

# 查看所有网络信息 ifconfig # 控制台显示 br-cbb7bbd9dd54: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500 inet 172.19.0.1 netmask 255.255.0.0 broadcast 172.19.255.255 ether 02:42:aa:cb:98:a6 txqueuelen 0 (Ethernet) RX packets 9922240 bytes 4198752081 (3.9 GiB) RX errors 0 dropped 404 overruns 0 frame 0 TX packets 10043689 bytes 2152701308 (2.0 GiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 br-e01f2aaa9bf5: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500 inet 172.18.0.1 netmask 255.255.0.0 broadcast 172.18.255.255 ether 02:42:44:31:54:fc txqueuelen 0 (Ethernet) RX packets 1654739 bytes 284217999 (271.0 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 1654739 bytes 284217999 (271.0 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 docker0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500 inet 172.17.0.1 netmask 255.255.0.0 broadcast 172.17.255.255 inet6 fe80::42:8cff:fe08:a0f9 prefixlen 64 scopeid 0x20<link> ether 02:42:8c:08:a0:f9 txqueuelen 0 (Ethernet) RX packets 650 bytes 156927 (153.2 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 736 bytes 105419 (102.9 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1452 inet 10.23.143.148 netmask 255.255.0.0 broadcast 10.23.255.255 inet6 fe80::5054:ff:fe73:7e08 prefixlen 64 scopeid 0x20<link> ether 52:54:00:73:7e:08 txqueuelen 1000 (Ethernet) RX packets 9922240 bytes 4198752081 (3.9 GiB) RX errors 0 dropped 404 overruns 0 frame 0 TX packets 10043689 bytes 2152701308 (2.0 GiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10<host> loop txqueuelen 1000 (Local Loopback) RX packets 1654739 bytes 284217999 (271.0 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 1654739 bytes 284217999 (271.0 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

__EOF__

本文作者羊37
本文链接https://www.cnblogs.com/yang37/p/14687983.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   羊37  阅读(2383)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示