12.docker的网络-host模式

1.docker的host网络模式简介

host模式下,容器将不会虚拟出自己的网卡、配置IP等,而是使用宿主机的IP和端口;也就说,宿主机的就是我的。

2. 以host网络模式创建容器

2.1 创建容器

我们仍然以tomcat这个镜像来说明一下。我们以host模式启动一个容器t3:

docker run -d --network host -p 8081:8080  --name t3 donkey/tomcat8:1.0.0

在这里插入图片描述

2.2 创建容器过程中的问题

这里我们看到两个问题:
1.容器启动完成后,打印的信息中有个警告信息:WARNING: Published ports are discarded when using host network mode
2.docker ps查看容器,我们指定了端口映射,但是显示出来的信息却没有。

2.3 问题的分析与解释

为了解释这个问题,我们再启动一个容器t4,t4我们仍然使用host网络模式,但是我们不指定端口映射:

docker run -d --network host --name t4 donkey/tomcat8:1.0.0

在这里插入图片描述
这时我们发现容器创建过程中并没有出现警告信息。为什么呢?我们看host模式下,它不仅ip都使用宿主机,就连端口也使用宿主机的的。所以就不需要再设置端口映射了,我们容器暴露的端口是什么,那么就是什么端口。这里我们t3容器暴露的端口是8080,所以我们直接就能用http://127.0.0.1:8080访问。
那现在又有一个问题,我们启动了t3和t4两个容器,由于来自同一个镜像,那么容器暴露的端口就都是8080,是一样的,这怎么办呢?
我们看下容器t4的日志:

docker logs t4

在这里插入图片描述
在这里插入图片描述
非常不幸,tomcat服务启动失败了,端口被占用了。

3. 以host网络模式下,容器和宿主机网络情况

3.1 大胆猜测

我认为宿主机和容器的网络情况是一模一样的。

3.2 宿主机的网络情况

在这里插入图片描述
没有看到之前成对出现的网卡,只有一个docker0和宿主机本身的网络信息。

3.3 容器的网络情况

ker exec -it t4 /bin/bash		

在这里插入图片描述

3.4 结论

不出所料,宿主机和容器的网路情况是一样的。

Docker网络模式有很多种,其中一种是host网络模式。在host网络模式下,Docker容器将直接使用宿主机的网络,而不是在Docker的虚拟网络中创建一个新的网络接口。 host网络模式的优点是容器可以直接访问宿主机上的网络资源,网络性能更好,但缺点是会占用宿主机的网络端口,可能会引起网络冲突。 下面我们来演示一下如何使用host网络模式。 1. 创建一个普通的Docker容器 首先,我们创建一个普通的Docker容器,使用默认的桥接网络模式: ``` docker run -itd --name mycontainer busybox ``` 2. 在容器中测试网络 接着,我们进入容器中,在容器内部测试网络: ``` docker exec -it mycontainer sh ``` 在容器内部,我们可以使用ping命令测试网络连通性: ``` ping www.baidu.com ``` 如果网络正常,我们可以看到ping的结果。 3. 创建一个使用host网络模式Docker容器 现在,我们来创建一个使用host网络模式Docker容器: ``` docker run -itd --name myhostcontainer --network host busybox ``` 注意,我们使用了--network host参数来指定使用host网络模式。 4. 在容器中测试网络 接着,我们进入容器中,在容器内部测试网络: ``` docker exec -it myhostcontainer sh ``` 在容器内部,我们可以使用ping命令测试网络连通性: ``` ping www.baidu.com ``` 如果网络正常,我们可以看到ping的结果。 5. 总结 在host网络模式下,Docker容器直接使用宿主机的网络网络性能更好,但可能会引起网络冲突。在使用host网络模式时,需要注意端口占用和网络冲突的问题。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值