Docker容器互联(六)

举报
brucexiaogui 发表于 2021/12/30 02:02:33 2021/12/30
【摘要】 Docker容器互联(六) 一、场景介绍 介绍在一个宿主机中的多个容器之间的互联、拒绝链接以及允许特定容器间的连接 二、多个容器互联 docker默认同一个宿主机中的容器是可以互相连通的。 缺点:每当容器重启后IP地址都会重新分配,该容器无法提供稳定的服务。  1、环境介绍 使用centos...

Docker容器互联(六)

一、场景介绍

介绍在一个宿主机中的多个容器之间的互联、拒绝链接以及允许特定容器间的连接

二、多个容器互联

docker默认同一个宿主机中的容器是可以互相连通的。

缺点:每当容器重启后IP地址都会重新分配,该容器无法提供稳定的服务。

 1、环境介绍

使用centos镜像创建容器,因centos是简化版,没有ifconfig命令,需要安装。


  
  1. #安装net-tools工具解决ifconfig
  2. yum -y install net-tools

 

2、创建两个容器C1和C2进行互联


  
  1. #创建c1容器
  2. docker run -it --name c1 centos /bin/bash
  3. #创建c2容器
  4. docker run -it --name c2 centos /bin/bash

1、在容器内使用ifconfig查看两个容器的IP地址

c1容器创建后IP地址:172.17.0.2

c2容器创建后IP地址:172.17.0.3

2、在c2容器中ping c1容器的地址,能够ping通。

3、 进入c1容器中ping c2容器地址,能够ping通。


   
  1. 组合键 Ctrl+p+q 退出c2容器
  2. 进入c1容器 docker attach c1

三、容器 link方式互联

容器 link方式互联可以解决上面因容器重启IP重新分配导致不能提供稳定服务的问题。

link工作原理:link自动将对方容器的IP地址和容器的名称映射到自己的hosts文件中,当容器重启后hosts中会自动刷新容器的IP地址,因此link通过容器名称访问,不受IP地址变化的影响。

1、创建 link


  
  1. #link命令使用
  2. docker run -it --name c3 --link=c1:c3-c1 centos /bin/bash

link命令介绍

  • link完整的参数:--link=[container_name]:[alisa] 
  • container:目标容器名称
  • alisa:为了方便记忆,给目标容器起个别名。 

 2、查看hosts

目标容器的IP和名称自动映射到了c3容器的hosts中。

 3、通过容器别名访问目标容器

4、重启docker容器验证是否可以解决IP地址重新分配链接问题


  
  1. #重启docker容器
  2. docker restart c1 c3
  3. #进入c3容器
  4. docker attach c3
  5. #连接c1容器
  6. ping c3-c1

 

四、拒绝容器间的访问

在docker启动配置文件中添加icc=false

icc=true :默认为true 容器间可进行互联,改为false拒绝容器间互联

五、只允许特定容器间的互联

1、在启动配置文件中添加icc和iptables

  • 设置icc=false:--icc=false
  • iptables=true: --iptables=true

2、启动容器添加link指定要连接的目标容器。例如:启动c3容器 link到c1容器

3、清除iptables

  • iptables -F

4、重启启动docker服务

  • systemctl restart docker

5、再次启动docker容器,进入c3容器访问c1。访问成功。

 

 

 

文章来源: brucelong.blog.csdn.net,作者:Bruce小鬼,版权归原作者所有,如需转载,请联系作者。

原文链接:brucelong.blog.csdn.net/article/details/99859304

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。