天天看点

Docker基础之八: 容器的网络容器的网络

(对docker感兴趣的朋友可以加我的微信ghostcloud2016,然后我把你加到我们的一个docker爱好者群组里面。)

根据之前的教程我们只是运行了简单的应用程序。之前我们编译了自己的image,在本节中我们将讲述如何管理容器的网络。

如果你仔细查看docker ps的输出,你会看到docker自动生成了容器的名称:

compassionate_cray就是一个名称。通过容器命令,可以提供两个有用的功能:

默认你是通过容器的id进行操作,你可以为特定容器设置容器名称,比如如果容器是一个web应用,你可以把它标记为web。

容器之间,可以通过名称进行相互的引用和链接.

容器的名称通过--name来进行设置:

我们可以通过docker inspect来查看容器的详细参数:

root@gctest:~# docker network ls network id name driver 782f465fa194 none null 6887a082de45 host host 6e75573f448f bridge bridge

从上面我们可以看出,桥接的网卡是172.17.0.1/16,网关是172.17.0.1。其中有一个容器连接到了这个桥接网络中,它的ip是172.17.0.2/16。 如果你想将容器从网络中移除,你可以使用:

docker原生支持bridge和overlay网络,bridge只能在单个主机上使用。overlay可以在多台主机间使用,这部分将在后续进行详细讲解。下面我们就来建立一个自己的网络:

-d表示使用已有的bridge来创建新的网络,你也可以省略该参数,这个是默认参数。

默认情况,容器使用的是同一个bridge网络,这样可能有一定的安全隐患,为了做到完全的隔离,我们可以自己建一个桥接网络,然后在启动容器时将容器加入到自己的网络中。比如:

如果你inspect你的网络,你会看到详细的连接信息:

如果启动时没有指定网络或想加入多个网络,可以通过connect命令加入。