专业IT网络知识平台,分享IT百科知识、生活百科知识解答!

易企推科技
易企推科技

Docker容器访问宿主机网络的方法

来源:小易整编  作者:小易  发布时间:2023-03-15 05:09
摘要:Docker容器访问宿主机网络的方法容器内部安装ping命令容器中安装ping工具:sudoapt-getupdate&&apt-getinstalliputils-pingroot@884631624f24:/# sudo apt-get...

Docker容器访问宿主机网络的方法

容器内部安装ping命令容器中安装ping工具:

sudo apt-get update && apt-get install iputils-ping

root@884631624f24:/# sudo apt-get update

root@884631624f24:/# apt-get install iputils-ping

测试Ping命令

root@884631624f24:/# ping www.baidu.com
PING www.a.shifen.com (112.80.248.75) 56(84) bytes of data.
64 bytes from 112.80.248.75 (112.80.248.75): icmp_seq=1 ttl=52 time=11.3 ms
64 bytes from 112.80.248.75 (112.80.248.75): icmp_seq=2 ttl=52 time=11.2 ms
^Z
[1]+  Stopped                 ping www.baidu.com
root@884631624f24:/#

方式一:使用宿主机IP

在安装Docker的时候,会在宿主机安装一个虚拟网关 docker0 ,我们可以使用宿主机在 docker0 上的IP地址来代替 localhost 。

首先,使用如下命令查询宿主机IP地址:

[root@VM-16-16-centos ~]# ip addr show docker0
3: docker0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP 
group default 
    link/ether 02:42:3f:c5:b6:67 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:3fff:fec5:b667/64 scope link 
       valid_lft forever preferred_lft forever
[root@VM-16-16-centos ~]# 
[root@VM-16-16-centos ~]#

可以用172.17.0.1代替localhost访问宿主机

注意:不同系统下宿主机的IP是不同的,例如Linux下一般是 172.17.0.1 , macOS下一般是 192.168.65.1 ,并且这个IP还可以更改。所以使用IP配置 nginx.conf ,不能跨环境通用。

方式二:使用host网络

Docker容器运行的时候有 host 、 bridge 、 none 三种网络可供配置。默认是 bridge ,即桥接网络,以桥接模式连接到宿主机;host 是宿主网络,即与宿主机共用网络;none 则表示无网络,容器将无法联网。

当容器使用 host 网络时,容器与宿主共用网络,这样就能在容器中访问宿主机网络,那么容器的 localhost 就是宿主机的 localhost 。

在docker中使用 --network host 来为容器配置 host 网络:

docker run -d --name nginx --network host nginx

上面的命令中,没有必要像前面一样使用 -p 80:80 -p 443:443 来映射端口,是因为本身与宿主机共用了网络,容器中暴露端口等同于宿主机暴露端口。

使用host网络不需要修改 nginx.conf ,仍然可以使用 localhost ,因而通用性比上一种方法好。但是,由于 host 网络没有 bridge 网络的隔离性好,使用 host 网络安全性不如 bridge 高。

总结

  • 宿主机IP隔离性更好,但通用性不好。

  • host网络,通用性好,但带来了暴露宿主网络的风险。


本文地址:IT问答频道 https://www.hkm168.com/itwenda/927380.html,易企推百科一个免费的知识分享平台,本站部分文章来网络分享,本着互联网分享的精神,如有涉及到您的权益,请联系我们删除,谢谢!


IT问答
小编:小易整编
相关文章相关阅读
  • 网络安全相关内容有哪些

    网络安全相关内容有哪些

    网络安全相关内容有:1、网络攻击;2、信息安全;3、防抵赖问题;4、网络内部安全防范;5、网络防病毒;6、网络数据备份与灾难恢复等。一、网络攻击1、对网络的攻击大致可以分为两类:服务供给和非服务攻击。从攻击的手段可以分为8类:系统入侵类攻击...

  • 怎么查看使用的docker是哪个版本

    怎么查看使用的docker是哪个版本

    可以利用“dockerversion”命令查看docker是那个版本,该命令用于显示docker的版本信息,并且可以通过设置参数为“-f”来指定返回值的模板文件,显示结果中“version”一项的内容就是docker的版本号。本教程操作环...

  • 网络协议的三个要素是什么?各有什么含义?

    网络协议的三个要素是什么?各有什么含义?

    网络协议的三个要素及其含义:1、语义,解释控制信息每个部分的意义;2、语法,用户数据与控制信息的结构与格式,以及数据出现的顺序;3、时序,对事件发生顺序的详细说明。简单来说:语义表示要做什么,语法表示要怎么做,时序表示做的顺序。网络协议为计...

  • 如何更改网络DNS设置

    如何更改网络DNS设置

    当我们在使用电脑的时候有时候会发现自己访问不了某些网站或者会跳转到其他无关的网站里,遇到这种问题可能是dns被改了,那么该怎么修改dns呢,现在就一起来看看吧。怎么修改网络dns1、点击开始,点击“控制面板”2、选择“网络和Interne...

  • 网络爬虫技术是什么意思?

    网络爬虫技术是什么意思?

    网络爬虫技术是指按照一定的规则,自动地抓取万维网信息的技术。网络爬虫又称为网页蜘蛛、网络机器人,在foaf社区中间,更经常的称为网页追逐者;另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。网络爬虫技术是指按照一定的规则,自动地抓...

  • 如何在Win11中禁止特定软件的网络访问?

    如何在Win11中禁止特定软件的网络访问?

    php小编西瓜为大家介绍一下如何在win11中禁止某个软件联网的方法。有时候我们可能希望某个软件不要联网,可能是为了节省流量,或者是出于隐私保护的考虑。在win11中,我们可以通过一些简单的设置来实现这个目的。下面就让我们来看看具体的操作步...

  • umts是什么网络类型

    umts是什么网络类型

    umts是通用移动通信系统。umts作为一个完整的3g移动通信技术标准,umts并不仅限于定义空中接口。umts实现的前提是广泛使用gsm移动电话系统,属于2g技术。umts介绍:通用移动通信系统,简称UMTS(UniversalMobi...

  • 怎么重置网络

    怎么重置网络

    重置网络的方法:1、点击开始,打开设置;2、进入网络和internet设置,切换到状态栏目;3、点击网络重置选项,接着点击立即重置选项即可。本文操作环境:windows10系统、thinkpadt480电脑。(学习视频分享:编程视频)具体...

  • 周排行
  • 月排行
  • 年排行

精彩推荐