Docker 的 Network(三)

Docker 的 Network(三)

延续昨天介绍Docker Network 的部份,已经实作了none、container、host、bridge 的模式,今天要来实作的是overlay 网络模式,这种模式主要是在不同的实体主机内的Container 之间可以互相的沟通,如下图:

Docker 的 Network(三)

上图主要是说明 Host1 实体主机里面有 Container1,然后 Host2 实体主机里面有 Container2,可以透过 Docker Overlay 的 Network 的模式将 Container1 和 Container2 连接起来做沟通。另外 Consol 是一个存放连线资讯的资料库,在使用 overlay 时必需要在 Docker 设定,这样才能存放 overlay 网络模式的连线资讯。

另外在使用 overlay 网络模式时,要先确认 Linux Kernel 的版本。目前我使用的版本是 3.19.8 是可以正常执行的。

Example:

使用 Docker Overlay的网络模式,实作不同的实体主机之间的 container 可以互相的连接,步骤如下:

  1. 切换到 root 使用者,修改 Host1 的 Docker 设定,指令如下:

Docker 的 Network(三)

设定档如下:

Docker 的 Network(三)

主要的设定就是 cluster-store 和 cluster-advertise,分别是要连接到 consul 的 service,取得 overlay 网络模式的连线资讯,以及设定可以让不同实体主机连线的网卡。

2. 重新启动 Host1 的 Docker Service 指令如下:

Docker 的 Network(三)

3. 在 Host1 使用启动 docker container 的方式启动 consul service,指令如下

Docker 的 Network(三)

4. 在 Host1,使用 docker network 指令建立一个 overlay1 的网络,指令如下

Docker 的 Network(三)

使用 docker network ls,查看建立之后的结果,画面如下

Docker 的 Network(三)

5. 在 Host1 启动一个连接到 overlay1 的 container,指令如下

Docker 的 Network(三)

6. 开一个新视窗,到 Host2 修改 Docker 的设定如下

Docker 的 Network(三)

设定如下:

Docker 的 Network(三)

以上的设定和 Host1 是很像的。

7. 在 Host2 上重新启动 Docker service 指令如下

Docker 的 Network(三)

8. 在 Host2 上,使用 docker network ls 指令确认是否有连到 consol service,画面如下

Docker 的 Network(三)

9. 在 Host2 上启动一个 container,并且连到 overlay1 的网络,指令如下

Docker 的 Network(三)

10. 测试在 container1 ping 到 container2 的 IP

container2 的画面如下:

Docker 的 Network(三)

container1 的画面如下:

Docker 的 Network(三)

今天介绍主要是透过 Docker 的 Overlay Network 模式,把不同实体主机上的 Container 连接在一起,这样就可以把 Container 分散在不同的实体机器上执行。




分享到:


相關文章: