4.7-容器网络之host和none

        这一节我们来看一下docker中的另外两种网络,host和none。

        先使用docker network ls查看容器的网络。

    然后,使用docker network inspect none查看none这个网络上面连接的容器。


    看到现在none这个网络上面连接的容器是没有的。
    使用docker image ls查看有哪些docker image,然后,使用下面的命令启动docker container:
其中,--network none表示容器启动时指定使用none网络。
docker run -d --name test1 --network none flask-hello-docker
​​​​    再使用docker network inspect none查看none这个网络上面连接的容器
​​​​​​​
    于是就看到Containers, 里面包含了一个test1 表示这个容器连接到了none。

        然后,使用docker exec -it test1 /bin/sh进入到test容器中。

        然后执行ip a

        可以发现test1除了有一个lo本地回环口就没有其他网络接口了,这就意味着test1这个容器所在的namespace是一个孤立的,我们只可以通过docker exec  -it test1 /bin/sh访问这个容器,除此之外没有其他任何方式可以访问到这个容器。

        既然我们谁都不能访问这个test1容器(连接到none这个网络的容器),那创建这个容器有什么用呢?我们实际应用中可能会存在安全低等级比较高的应用,比如存储密码的容器,我不想让这个存储密码的服务让任何人访问到,只有自己在本地访问就可以了,这时可以通过这种方式来实现。

        然后我们再来看看host这种网络。我们先停掉test1,然后再删除test1。

        然后,重启启动test1,指定网络是host。

docker run -d --name test1 --network host flask-hello-docker

        再看一下host网络上连接的容器有哪些

docker network inspect host

        然后,使用docker exec -it test1 /bin/sh进入到test容器中。

        运行ip a 

        然后使用exit退出test1容器,这时,在linux主机上使用ip a

        我们发现,使用host网络的容器,它们的没有自己的network namespace,它和主机共享一套network namespace。

        通过连接host网络这种方式启动docker container存在一个问题,就是可能会存在端口冲突的问题。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lvdapiaoliang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值