Docker容器的互联

news/2024/5/18 13:15:30

一、docker容器互联的默认方式

在同一个宿主机下,docker的容器是通过虚拟网桥来进行连接的,在默认情况下在同一宿主机中运行的docker容器都是可以互相连接的,docker提供一个允许容器互相连接的选项:
–icc=true 默认,表示docker允许容器的互相连接

容器的ip地址是一个不可靠的连接,因为它会随着容器的重启而改变,如果我们在docker上提供了一些服务,那么这些服务如果以ip地址的方式来连接,就会在容器重启时失效,这是我们不希望看到的情况,而docker为了避免这种情况提供了另外的一种方式,这就是容器启动时的link选项:
–link
语法:
run --link=[CONTAINER_NAME]:[ALIAS] [IMAGE] [COMMOND]
示例:
1.启动容器cct3,关联容器cct1,别名webtest
docker run -it --name cct3 --link=cct1:webtest e2da955a5469
注意:在容器cct3内部使用env命令查看,cct3使用在很多地方webtest作为环境变量。

二、拒绝所有容器间的互联

Docker守护进程的启动选项
–icc=false
Ubuntu 操作系统请使用如下步骤:
步骤1、使用命令:vi /etc/default/docker修改docker的启动文件,在文件末尾追加
DOCKER_OPTS="–icc=false"
步骤2、重启docker服务,命令如下:
service docker restart

Centos7 操作系统请使用如下步骤:
步骤1、使用命令:vi /etc/docker/daemon.json编辑daemon.json添加如下内容:
{

“icc”: false,

}
步骤2、使用命令:systemctl restart docker重启docker;
注意:此时直接ping容器的ip地址或者ping添加link选项的容器都不通。

三、允许特定容器间的连接

Docker守护进程的启动选项
–icc=false --iptables=true
–link 在容器启动时添加link
docker利用iptables中的机制,在icc=false时,阻断所有的docker容器间的访问,仅仅运行利用link选项配置的容器进行相互的访问。
注: 如果出现ping不通的情况,可能为iptables的问题(DROP规则在docker之前了)。

Ubuntu 操作系统请使用如下步骤:
步骤1、使用命令:vi /etc/default/docker修改docker的启动文件,在文件末尾追加
DOCKER_OPTS="–icc=false --iptables=true"
步骤2、重启docker服务,命令如下:
service docker restart
sudo iptables -L -n 查看iptables规则的情况
sudo iptables -F 清空iptables规则设置
sudo service docker restart 重新启用docker的服务
sudo iptables -L -n 再来查看iptables的设置,docker的规则链已经在第一位

Centos7 操作系统请使用如下步骤:
步骤1、使用命令:vi /etc/docker/daemon.json编辑daemon.json添加如下内容:
{
    ...
    "icc": false,
    "iptables": true,
    ...
}
步骤2、使用命令:systemctl restart docker重启docker;
注意:在centos7中没有成功,不确定是不是docker的bug

http://www.niftyadmin.cn/n/640692.html

相关文章

Dockerfile的构建过程

一、Dokcerfile的构建过程 步骤1、从基础镜像运行一个容器 步骤2、执行一条指令,对容器做出修改 步骤3、执行类似docker commit的操作,提交一个新的镜像层 步骤4、再基于刚提交的镜像运行一个新容器 步骤5、执行Dockerfile中的下一条指令,直…

《Web全栈工程师的自我修养》——余果. 书摘

Web全栈工程师的自我修养——余果 ◆ 围绕商业目标 要先看看有哪些问题需要解决,然后再补充您的工具箱。 ◆ 获得面试机会 在著名开源项目中贡献代码,说明您有能力阅读和编写好的代码 ◆ 那个什么都懂的家伙 技术是您的武器,成长就是好好打磨…

两道选择题,看完之后全班真的只剩下沉默

记得大学一堂选修课上。教授面带微笑,走进教室,对我们说:“我受一家机构委托,来做一项问卷调查,请同学们帮个忙。”一听这话,教室里轻微的一阵议论开了,大学课堂本来枯燥,这下好玩多…

多阶段构建

一、多阶段构建原理 多阶段构建,是在Dockerfile中使用多个FROM指令,每个FROM指令可以使用不同的基础镜像,并且每个指令都开始一个新的构建,可以选择性地将一个阶段构建中生成的文件复制到另一个阶段,从而在最终image中…

js复制文本到剪切板中 支持换行

/*** 复制文本到剪切板中** export* param {*} value 需要复制的文本* param {*} cb 复制成功后的回调*/ export function copy(value, cb) {// 动态创建 textarea 标签const textarea document.createElement(textarea)// 将该 textarea 设为 readonly 防止 iOS 下自动唤起键…

颜色模型和颜色应用---HLS颜色模型

2019独角兽企业重金招聘Python工程师标准>>> 转载于:https://my.oschina.net/liyangke/blog/2877018

一键部署Docker CE(CentOS 7)

一键部署脚本 #!/bin/sh # author ling# 定义显示颜色 RED\e[1;91m GREEN\e[1;92m WITE\e[1;97m NC\e[0m# centos7环境中安装docker function install_docker_in_contos7() {echo "Install docker in centos7!"echo "Remove old docker!"yum remove docke…

react —— 复制定制化带有标题的二维码

1. 生成二维码直接借助qrcode这个npm库即可生成二维码,但接到的需求要求是在鼠标点击的附近展示出二维码,点击弹窗里面的复制按钮即可赋值带标题的二维码图片到剪切板,实现效果如下图: 主要实现要点: 1.利用qrcode 生成…