0.背景

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:[email protected]: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: 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: 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 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 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 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

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 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

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 mtu 65536

inet 127.0.0.1 netmask 255.0.0.0

inet6 ::1 prefixlen 128 scopeid 0x10

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

原文:https://www.cnblogs.com/yang37/p/14687983.html

linux容器返回宿主机,Linux下Docker容器访问宿主机网络相关推荐

  1. 容器访问宿主机数据库_docker从容器中怎么访问宿主机

    展开全部 例如你的62616964757a686964616fe4b893e5b19e31333433626437docker环境的虚拟IP是192.168.99.100,那么宿主机同样会托管一个和1 ...

  2. 利用 Docker 在不同宿主机做 CentOS 系统容器 | 原力计划

    作者 | 于先森2017 责编 | 伍杏玲 出品 | CSDN博客 最近公司新接到一个项目,惯例是通过技术架构.业务需求.用户量还有以往的经验大概评估出一份资源配置表格提供给客户,让客户参考采购的服务 ...

  3. docker删除所有容器_如何在Linux上创建,列出和删除Docker容器

    本篇文章介绍的内容是关于在Linux机器上创建,列出和删除docker容器,下面我们来看具体的内容. 我的官方群点击此处 1.启动Docker容器 使用下面的命令启动新的Docker容器.这将启动一个 ...

  4. Linux怎么查询全部容器时间,linuxea:如何单单修改docker容器的系统时间

    一般情况下,我们仅仅需要修改容器的时间与我们宿主机的实际实际一致即可, 我们知道,默认情况下docker容器是不允许访问系统时钟,但是有一款开源的软件使这样的需求变成了可能.此lib拦截用于检索当前时 ...

  5. Mac系统下docker容器无法使用--net host共享宿主机端口的解决方案

    文章目录 背景 解决过程一 分析 Mac系统下docker容器无法使用--net host共享宿主机端口的原因 docker的网络配置 host模式 overlay模式 macvlan模式 bridg ...

  6. docker容器的网络配置,允许docker可以被宿主机以外的其它主机访问以及局域网内可以直接访问docker容器ip

    自从Docker容器出现以来,容器的网络通信就一直是被关注的焦点,也是生产环境的迫切需求.容器的网络通信又可以分为两大方面:单主机容器上的相互通信,和跨主机的容器相互通信. 一.端口映射(局域网,外网 ...

  7. 【LXD容器与宿主机Ubuntu系统 共享文件夹】

    LXD容器与宿主机Ubuntu系统 共享文件夹 1 先给宿主机共享文件夹权限 2 在宿主机创建共享区域 3 将文件夹共享到指定的LXD容器 4 在容器添加 profile (可选) 目的: 需要将移动 ...

  8. win10主机无法与Docker容器通讯的坑

    win10主机无法与Docker容器通讯的坑 问题 win10系统,上面装了个WSL(Ubuntu),在Ubuntu上装了个Docker. Docker容器运行后,发现Ubuntu可以与Docker通 ...

  9. docker容器无法访问宿主机报出 No route to host

    项目场景: 提示:docker容器无法访问宿主机报出 No route to host: 例如:防火墙环境下,docker容器无法访问宿主机的其他应用端口 原因分析: 在进行docker部署的时候我们 ...

  10. Docker容器中GUI软件的远程图形界面交互:mobaXterm+SSH,以脑影像处理软件FSL为例;FSL6.0.3完整安装与可视化;docker容器图形化;远程登录docker容器;

    前言   对docker容器中软件的操作,是基于命令行的,这就导致了习惯图形化界面的人比较难以使用docker,而它又是一个神器,所以很难受.一般情况下,可以给容器安装一个桌面环境,然后用类似VNC的 ...

最新文章

  1. Windows、WSL 与 Linux 的性能对比
  2. CentOS 6.5安装nagios
  3. I/O模型之一:Unix的五种I/O模型
  4. python的flask实现第三方登录怎么写_关于qq和新浪微博的第三方登陆|python|flask
  5. 频域/s域/z域三大变换的发展史及其联系
  6. 机器学习中的数学(七)--凸优化的基础知识
  7. centos window系统安装django
  8. vue企业门户网站模板_6 个火爆 GitHub 的后台管理模板,快来收藏!
  9. 【Objecitve C代码】让对象沿着某条路径移动的动画效果
  10. Activiti流程实例管理
  11. linux 下录音软件,linux下录音软件Audacity[zt]
  12. 企业微信 发送或接收 图片失败,怎么办?
  13. CF633H Fibonacci-ish II(莫队+线段树)
  14. 华氏度与摄氏度的转化(C语言)
  15. 一个 将一个无效参数传递给了将无效参数视为严重错误的函数 及写入位置时发生访问冲突的问题的解决
  16. 【编程题】【Scratch二级】2019.06 飞不出去的蝴蝶
  17. 领英辅助工具—领探,可突破领英的好友人脉限制
  18. 牛客网——歪脖子树下的灯
  19. C#生成电子印章源码
  20. 《Cocos Creator游戏实战》新手引导实现

热门文章

  1. hdu 1561(树形DP+背包)
  2. 理解数据库设计范式【转】
  3. 基于统计语言模型的分词方法
  4. 对极大似然估计的理解
  5. leetcode刷题日记-1995. 统计特殊四元组
  6. 模板题——位运算,离散化,区间合并
  7. 浅谈GIS中几种常用的坐标系统与投影系统
  8. 【Python读csv文件】'gbk' codec can't decode byte 0xb3 in position 73: illegal multibyte sequence
  9. 深入理解java虚拟机学习笔记(一)
  10. java父类可以强转为子类吗_java父类可以强制转化成子类吗?