多个docker容器如何共享网络
多个docker容器如何共享网络
一、创建共享网络
无论哪种方式,第一步都是创建一个共享网络,这里创建一个名为 local_public 的网络,可以自定义,执行后会输出一个网络的ID,代表创建成功,也可通过 docker network ls 来查看网络列表.
# 创建公共网络
docker network create local_public
二、docker-compose 启动容器共享网络
目录结构如下
$ tree docker-test
docker-test
├── nginx1
│ └── 1.yml
└── nginx2
└── 2.yml
1.yml 文件如下
version: "3"
services:
nginx:
image:
nginx:alpine
container_name: nginx1
networks:
- local_public #着重看这里
networks:
local_public:
external: true #着重看这里 不加网桥名不前缀,必需提前手动创建这个网络 默认是false,会加前缀,自动创建
手动创建这个网络
docker network create local_pullic
docker network ls
2.yml 文件如下
version: "3"
services:
nginx:
image:
nginx:alpine
container_name: nginx2
networks:
- local_public
networks:
local_public:
external: true
分别启动两个容器
docker-compose -f nginx1/1.yml up -d
docker-compose -f nginx2/2.yml up -d
进入nginx1容器,尝试 ping 两个容器
docker exec -it nginx1 sh
/ # ping nginx1 -c 4
PING nginx1 (172.20.0.2): 56 data bytes
64 bytes from 172.20.0.2: seq=0 ttl=64 time=0.238 ms
64 bytes from 172.20.0.2: seq=1 ttl=64 time=0.196 ms
64 bytes from 172.20.0.2: seq=2 ttl=64 time=0.208 ms
64 bytes from 172.20.0.2: seq=3 ttl=64 time=0.268 ms
--- nginx1 ping statistics ---
4 packets transmitted, 4 packets received, 0% packet loss
round-trip min/avg/max = 0.196/0.227/0.268 ms
/ # ping nginx2 -c 4
PING nginx2 (172.20.0.3): 56 data bytes
64 bytes from 172.20.0.3: seq=0 ttl=64 time=0.394 ms
64 bytes from 172.20.0.3: seq=1 ttl=64 time=0.358 ms
64 bytes from 172.20.0.3: seq=2 ttl=64 time=0.365 ms
64 bytes from 172.20.0.3: seq=3 ttl=64 time=0.348 ms
--- nginx2 ping statistics ---
4 packets transmitted, 4 packets received, 0% packet loss
round-trip min/avg/max = 0.348/0.366/0.394 ms
可以 ping 通 nginx1 和 nginx2 两个容器的IP不同,进入nginx2也可以得到同样的结果
参考文档:
http://www.ibloger.net/article/3525.html
多个docker容器如何共享网络的更多相关文章
- docker容器跨主机网络overlay
前提:已部署好docker服务服务预计部署情况如下10.0.0.134 Consul服务10.0.0.135 host1 主机名mcw510.0.0.134 host2 主机名mcw6host1与 ...
- Docker学习笔记 - Docker容器与外部网络的连接
学习目的: ip_forward 包过滤防护墙 iptables 允许端口映射访问 限制ip访问容器 1.ip_forward 控制系统是否会转发流量 检查linux系统转发是否开启命令:sysctl ...
- calico实现docker容器内部的网络链接
calico官网 https://www.projectcalico.org// calico介绍 http://www.sdnlab.com/17161.html calico网络 环境 系统 ...
- Ubuntu上挂载源代码,docker容器中共享这个原代码,实现自动部署
https://www.jianshu.com/p/23465dc86d3e 地址 5.3. 挂载源代码 为了在宿主机上创建.NET Core 项目,这个时候我们就需要在Linux宿主机上安装.N ...
- Docker容器的网络连接
Docker容器的网络连接 Docker容器的网络连接 我们用ifconfig命令来查看网络设备 我们可以看到上面有个叫docker0的网络设备,docker守护进程就是通过docker0为docke ...
- Docker基本命令与使用 —— Docker容器的网络连接(四)
一.Docker容器的网络基础 通过ifconfig查看docker0的网络设备,docker守护进程就是通过docker0为docker的容器提供网络连接的各种服务. docker0是Linux虚拟 ...
- docker之容器访问和网络连接(三)
前言 当一台服务器上部署了多个应用容器,它们直接可能需要相互通信,比如web应用容器需要访问mysql数据库容器. 主机访问容器 通过映射端口的形式我们可以在外部访问容器内的服务 # 将主机的127. ...
- Docker 容器的网络连接 & 容器互联
1. Docker 容器网络基础架构 Docker0 ifconfig查看到的 docker0 是linux的虚拟网桥(OSI数据链路层) docker0 地址划分: 172.17.42.1 255. ...
- Docker学习(13) Docker容器的网络连接
Docker容器的网络连接 Docker容器的网络基础 先安装网桥管理工具 Docker容器的互联 默认 Docker容器与外部网络的连接
- Docker的4种网络模式
我们在使用docker run创建Docker容器时,可以用--net选项指定容器的网络模式,Docker有以下4种网络模式: · host模式,使用--net=host指定. · container ...
随机推荐
- C#第一个helloworld程序
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 usin ...
- linux 简单的mysql备份和导入
linux 简单的mysql备份和导入 一.数据库的备份与导入 1.导出整个数据库 mysqldump -u 用户名 -p 数据库名 > 导出的文件名 例:mysqldump -u dbadmi ...
- 3 CSS组合选择器
3 组合选择器 页面元素比较复杂,存在多个嵌套.为了更加灵活选择页面中的元素,CSS中还提供了组合选择器.组合选择器就是将多个基本选择器通过一定的规则连接起来组成一个复杂选择器. 后代子代选择器 &l ...
- #珂朵莉树#CF896C Willem, Chtholly and Seniorious
题目 支持区间加,区间推平,询问区间第\(k\)小, 以及询问区间\(\sum{a_i^x}\pmod y\),数据随机 分析 由于数据随机,那么区间推平的概率为\(\frac{1}{4}\), 考虑 ...
- Pandas高级教程之:Dataframe的重排和旋转
目录 简介 使用Pivot 使用Stack 使用melt 使用Pivot tables 使用crosstab get_dummies 简介 使用Pandas的pivot方法可以将DF进行旋转变换,本文 ...
- OpenHarmony定义扩展组件样式:@Extend装饰器
在前文的示例中,可以使用@Styles用于样式的扩展,在@Styles的基础上,我们提供了@Extend,用于扩展原生组件样式. 说明: 从API version 9开始,该装饰器支持在ArkTS ...
- 【FAQ】HMS Core推送服务推送角标的开发及常见问题解答
目录 1.发送消息并显示桌面数字角标. 2.如何清除数字角标? 3.如何设置圆点角标? 4.应用桌面图标角标开关无法开启或未显示开关. 5.推送消息设置了角标字段但未显示角标? 6.未设置角标参数,但 ...
- Excel 特殊分组汇总示例
期望结果: 按照成绩划分区间段来分组时,定义好值的划分区间后,只需用 pseg 函数便可以将分数分好段,然后统计出各段人次即可. SPL 代码如下: A B 1 =clipboard().impo ...
- Python中两种网络编程方式:Socket和HTTP协议
本文分享自华为云社区<Python网络编程实践从Socket到HTTP协议的探索与实现>,作者:柠檬味拥抱. 在当今互联网时代,网络编程是程序员不可或缺的一项技能.Python作为一种高级 ...
- Oracle with的重复使用(递归)
Oracle with的重复使用(递归) 写力扣的时候学到了新的方法 Recursive WITH Clauses 通常来说如果直接使用with XXX as ()这种,是没发直接使用自身的数据的 例 ...