Docker容器的网络连接——Docker容器的互联

  • 允许所有容器互联  (docker的默认情况)
  • 拒绝容器间互联
  • 允许特定容器间的连接

环境准备

用于测试的Docker镜像Dockerfile:

cd /root/dockerfile/df_test

vim Dockerfile

# Container connection test

FROM ubuntu:14.04
RUN apt-get install -y ping
RUN apt-get update
RUN apt-get install -y nginx
RUN apt-get install -y curl
EXPOSE 80
CMD /bin/bash

Dockerfile中安装了三个程序 ping、nginx、curl ,ping 和 curl 都是用来测试网络连接的,nginx 用来提供默认的网络服务,而暴露的 80 端口也是网络服务使用的端口,在这个镜像运行时会使用 /bin/bash 作为启动命令。

根据Dockerfile文件创建镜像:

docker build -t dormancypress/cct .     —— 镜像的名字为 dormancypress/cct 

以上测试镜像就已经创建好了,环境准备完成。

允许所有容器间互联

介绍docker 容器互联的默认方式:

在同宿主机下docker容器是通过虚拟网桥进行连接的,在默认情况下,在同一宿主机中运行的docker容器都是可以互相连接的

docker提供了一个容器间互相连接的选项:

  --icc=true 默认

 默认值true就代表着docker允许容器的互相连接

演示:

启动两个容器来验证容器间的连接

启动第一个容器:

docker run -it --name cct1 dormancypress/cct   —— 因为我在镜像的构建中已经指明了镜像在运行时使用的启动命令,镜像名为dormancypress/cct  ,容器名为 cct1 

在容器中启动nginx服务,使用ctrl+p ctrl+q 退出,确保容器一直运行

在启动第二个容器:

docker run -it --name cct2 dormancypress/cct

查看cct2上的ip —— ifconfig

ctrl+p ctrl+q 退出 cct2 容器

进入cct1容器:查看 cct1 容器的 ip

docker attach cct1

使用ping命令来查看cct1 容器与cct2容器是否能连接

在cct1上执行ping命令:172.17.0.8是cct2 的ip地址 ,cct1的ip地址是172.17.0.7

可以看到在cct1可以ping通cct2;ctrl+p ctrl+q 退出容器

连接到cct2上:

docker attach cct2

 

猜你喜欢

转载自www.cnblogs.com/lily-first/p/10656555.html