linux容器返回宿主机,Linux下Docker容器访问宿主机网络
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容器访问宿主机网络相关推荐
- 容器访问宿主机数据库_docker从容器中怎么访问宿主机
展开全部 例如你的62616964757a686964616fe4b893e5b19e31333433626437docker环境的虚拟IP是192.168.99.100,那么宿主机同样会托管一个和1 ...
- 利用 Docker 在不同宿主机做 CentOS 系统容器 | 原力计划
作者 | 于先森2017 责编 | 伍杏玲 出品 | CSDN博客 最近公司新接到一个项目,惯例是通过技术架构.业务需求.用户量还有以往的经验大概评估出一份资源配置表格提供给客户,让客户参考采购的服务 ...
- docker删除所有容器_如何在Linux上创建,列出和删除Docker容器
本篇文章介绍的内容是关于在Linux机器上创建,列出和删除docker容器,下面我们来看具体的内容. 我的官方群点击此处 1.启动Docker容器 使用下面的命令启动新的Docker容器.这将启动一个 ...
- Linux怎么查询全部容器时间,linuxea:如何单单修改docker容器的系统时间
一般情况下,我们仅仅需要修改容器的时间与我们宿主机的实际实际一致即可, 我们知道,默认情况下docker容器是不允许访问系统时钟,但是有一款开源的软件使这样的需求变成了可能.此lib拦截用于检索当前时 ...
- Mac系统下docker容器无法使用--net host共享宿主机端口的解决方案
文章目录 背景 解决过程一 分析 Mac系统下docker容器无法使用--net host共享宿主机端口的原因 docker的网络配置 host模式 overlay模式 macvlan模式 bridg ...
- docker容器的网络配置,允许docker可以被宿主机以外的其它主机访问以及局域网内可以直接访问docker容器ip
自从Docker容器出现以来,容器的网络通信就一直是被关注的焦点,也是生产环境的迫切需求.容器的网络通信又可以分为两大方面:单主机容器上的相互通信,和跨主机的容器相互通信. 一.端口映射(局域网,外网 ...
- 【LXD容器与宿主机Ubuntu系统 共享文件夹】
LXD容器与宿主机Ubuntu系统 共享文件夹 1 先给宿主机共享文件夹权限 2 在宿主机创建共享区域 3 将文件夹共享到指定的LXD容器 4 在容器添加 profile (可选) 目的: 需要将移动 ...
- win10主机无法与Docker容器通讯的坑
win10主机无法与Docker容器通讯的坑 问题 win10系统,上面装了个WSL(Ubuntu),在Ubuntu上装了个Docker. Docker容器运行后,发现Ubuntu可以与Docker通 ...
- docker容器无法访问宿主机报出 No route to host
项目场景: 提示:docker容器无法访问宿主机报出 No route to host: 例如:防火墙环境下,docker容器无法访问宿主机的其他应用端口 原因分析: 在进行docker部署的时候我们 ...
- Docker容器中GUI软件的远程图形界面交互:mobaXterm+SSH,以脑影像处理软件FSL为例;FSL6.0.3完整安装与可视化;docker容器图形化;远程登录docker容器;
前言 对docker容器中软件的操作,是基于命令行的,这就导致了习惯图形化界面的人比较难以使用docker,而它又是一个神器,所以很难受.一般情况下,可以给容器安装一个桌面环境,然后用类似VNC的 ...
最新文章
- Windows、WSL 与 Linux 的性能对比
- CentOS 6.5安装nagios
- I/O模型之一:Unix的五种I/O模型
- python的flask实现第三方登录怎么写_关于qq和新浪微博的第三方登陆|python|flask
- 频域/s域/z域三大变换的发展史及其联系
- 机器学习中的数学(七)--凸优化的基础知识
- centos window系统安装django
- vue企业门户网站模板_6 个火爆 GitHub 的后台管理模板,快来收藏!
- 【Objecitve C代码】让对象沿着某条路径移动的动画效果
- Activiti流程实例管理
- linux 下录音软件,linux下录音软件Audacity[zt]
- 企业微信 发送或接收 图片失败,怎么办?
- CF633H Fibonacci-ish II(莫队+线段树)
- 华氏度与摄氏度的转化(C语言)
- 一个 将一个无效参数传递给了将无效参数视为严重错误的函数 及写入位置时发生访问冲突的问题的解决
- 【编程题】【Scratch二级】2019.06 飞不出去的蝴蝶
- 领英辅助工具—领探,可突破领英的好友人脉限制
- 牛客网——歪脖子树下的灯
- C#生成电子印章源码
- 《Cocos Creator游戏实战》新手引导实现
热门文章
- hdu 1561(树形DP+背包)
- 理解数据库设计范式【转】
- 基于统计语言模型的分词方法
- 对极大似然估计的理解
- leetcode刷题日记-1995. 统计特殊四元组
- 模板题——位运算,离散化,区间合并
- 浅谈GIS中几种常用的坐标系统与投影系统
- 【Python读csv文件】'gbk' codec can't decode byte 0xb3 in position 73: illegal multibyte sequence
- 深入理解java虚拟机学习笔记(一)
- java父类可以强转为子类吗_java父类可以强制转化成子类吗?