Docker容器技术:容器host与none网络

596 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第20天,点击查看活动详情

其实之前的章节我们都是在使用bridge网络的功能,他的使用也是广泛的复杂的。今天主要讨论另外两种network。

1. none-network

看到名子你可以联想到,none 网络就是指的什么都没有的网络

容器如果挂载在这个网络下的话,那么除了 lo,是不会有其他网卡的

容器创建时,可以通过 --network=none 指定使用 none 网络。

我们创建一个容器连接到该网络:

sudo docker run -d --name test1 --network none .....

然后我们inspect一下:

但是我们发现他没有任何网络信息,然后我们进去看一下:

sudo docer exec -it test1 /bin/sh

然后允许一下ip a 看一下,除了本地回转扣啥都没有:

所以这个network-namespace是一个孤立的,除了exec方式其他方式都访问不到。

这种模式通常用于作用:创建一种容器,要求安全性高,例如存储密码,不希望其他人访问到,只要求本地自己访问一下才行。

2. host-network

连接到 host 网络的容器共享 Docker host 的网络栈,容器的网络配置与 host 完全一样。可以通过 --network=host 指定使用 host 网络。

sudo docker run -d --name test1 --network host ...
docker network inspect host:

我们发现他也没有IP地址,接着我们进去容器看一下:

但是我们发现在test1里面的接口和外面linux主机里面的接口是一样的,所以我们通过host网络创建的容器是没有独立的network-namespace,他是和主机所在的namespace共享一套,所以两者一样。

注意:端口可能会有冲突