首页 > 其他分享 >多个docker容器如何共享网络

多个docker容器如何共享网络

时间:2024-02-23 14:58:38浏览次数:26  
标签:容器 nginx1 bytes 64 ms docker 172.20 共享

目录

多个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

标签:容器,nginx1,bytes,64,ms,docker,172.20,共享
From: https://www.cnblogs.com/haima/p/18029511

相关文章

  • docker启动nginx https自签名证书配置
    启动测试应用时,有时需要自己配置证书签名:1使用系统自带opensslopensslreq\>-x509\>-nodes\>-days365\>-newkeyrsa:2048\>-keyoutexample.key\>-outexample.crt各参数含义:req:处理证书签署请求。-x509:生成自签名证书。-nodes:跳过为证书设置密码......
  • 解决VMware与win10无法共享目录
    1、安装VMwareTools这一步适用于多数情况,但对于高版本的VMWare这一步无效,当然了,先试一试总没有坏处。有看见网上说如果VMware内安装的是高版本的Ubuntu,安装的VMwareTools会破坏Ubuntu。关于这一点博主没有验证,请自行验证。安装方法很简单:1)在VMware的虚拟机菜单下,点击“重......
  • docker常用命令
    docker教程1镜像相关1.1查看镜像列表sudodockerimages1.2镜像搜索比如搜索ubuntu基础镜像sudodockersearchubuntu可输出官方的镜像名称,以及star数量,选择一个需要的镜像下拉即可1.3下拉镜像sudodockerpull镜像名sudodockerpull镜像名:Tag1.4查看镜......
  • Jenkins构建提示docker命令权限问题解决方法
    参考:https://zhuanlan.zhihu.com/p/568513293使用Jenkins构建时使用的用户为jenkins在使用docker命令时会报以下错误ERROR:permissiondeniedwhiletryingtoconnecttotheDockerdaemonsocketatunix:///var/run/docker.sock:Get"http://%2Fvar%2Frun%2Fdocker.soc......
  • docker 常用命令 快捷命令
    一、查询节点dockerps-a二、docker重启停止systemctlrestartdockersystemctlstopdockerdockerrestart*三、一键构建数据库mongodockerrun-it-v/datavolumn/mongo:/data/db/mongo--restart=always-p27017:27017--namemongodb-dmongo:4.4.19re......
  • docker neo4j镜像
      报错了:在指定卷(volume)路径时使用了$HOME环境变量。在Windows的命令提示符(cmd)或PowerShell中,环境变量的语法与在类Unix系统的Shell中不同。$HOME在Windows命令行中通常不会被识别为用户的主目录。要解决这个问题,需要使用Windows环境变量的正确语法。在命令......
  • 在k8S中,一个Pod如何实现数据持久化?数据共享?跨节点Pod如何实现数据共享?
    在Kubernetes(k8S)中,同一个Pod内实现数据持久化和数据共享的方式主要通过使用Volume(卷)来完成。Volume是Kubernetes提供的一种抽象,它代表了宿主机上的一个目录或存储设备,可以被Pod中的一个或多个容器挂载并访问。1.数据持久化:EmptyDir:在Pod创建时自动创建一个空......
  • docker中mysql容器中配置时区
    mysql在docker容器中跑默认是取系统时区的,所以一般是UTC的时区,也就是说在中国的话,会比实际时间小8个小时。所以可以在环境变量中配置时区,我这里是通过docker-compose.yml中配置,如下图:[root@localhostmysql8]#catdocker-compose.ymlversion:'3'services:mysql8:......
  • 11. 盛最多水的容器C++
    原本想o(n2)遍历的,结果超时了,果然没这么简单就解决。classSolution{public:ints(vector<int>height,inti,intj){ints1=min(height[i],height[j])*(j-i);returns1;}intmaxArea(vector<int>&height){intmax=0,i=0,j=heigh......
  • Docker Swarm部署nginx+api-service实现负载均衡
    背景介绍api服务开发完毕之后如何快速部署实现负载均衡。如果不是重量级的项目,非常建议使用DockerSwarm来实现,非常简单高效且稳定。关于DockerSwarm集群的构建详见我的另一篇博客:DockerSwarm集群搭建相关文件准备(这里以一个ocr服务为例)docker-compose.ymlversion:'......