首页 > 其他分享 >docker - 多个docker通过非IP方式连接方式

docker - 多个docker通过非IP方式连接方式

时间:2023-10-08 23:08:02浏览次数:40  
标签:test1 bridge test2 name 方式 容器 IP docker

二、多个docker通过非IP方式连接方式:

有一个web容器、一个mysql容器,web服务器需要访问mysql容器,从上面的方式,可以知道使用IP来访问.

局限:

①. 每次部署或启动,相同容器的IP会发生变化
②. 需要先知道ip才能进行通信

1. link(官方已经废弃,原理可参考):

采用link来为mysql容器起个name,通过name + 端口就可以访问,IP变化了也没关系.类似添加了一个dns的记录.

# 创建容器test1
$ docker run -d --name test1 nginx
# 创建容器test2并link到test1
$ docker run -d --name test2 --link test1 nginx
# 进入test2容器,ping test1是通的
$ docker exec -it test2 /bin/sh
$ ping test1

原理:

①. test2 link到test就是修改了test2自己的host文件和设置了环境变量而已.
②. 所以test2能ping通test1,但是test1无法ping通test2.
③. --link后面是访问的容器名字.

2. 创建自定义的网桥:

①. 创建一个叫做my-bridge的网桥,使用的连接方式是bridge
   $ docker network create -d bridge my-bridge
②. 查看刚刚创建的my-bridge网络
   $ docker network ls
   NETWORK ID     NAME        DRIVER    SCOPE
   ......
   8217ca7f6526   my-bridge   bridge    local
   $ brctl show
   bridge name      bridge id          STP enabled    interfaces
   br-8217ca7f6526  8000.02420d2e2b15   no
   # br-后面跟的是创建新的bridge的network id

③. 创建容器test3并添加到my-bridge网络中 
   $ docker run --name test3 --network my-bridge busybox /bin/sh -c "while true; do sleep 3600; done"

④. 查看宿主机的网络环境,多出一个端口:
   $ ip a
   7: veth9902000@if6 : <BROADCAST,MULTICAST,UP,LOWER_UP>
  
⑤. 查看已有网桥:
   $ brctl show
   bridge name      bridge id   STP enabled  interfaces
   br-8217ca7f6526  8000.02420d2e2b15  no    veth9902000

⑥. 查看网络详情:
   $ docker inspect 8217ca7f6526(或docker network inspect 8217ca7f6526)
    "Driver": "bridge",
    "Containers": {
      "367c66d2abf9afa477......": {
      "Name": "test3",
      "IPv4Address": "172.18.0.2/16",
      }
    }
    a. 也可以使用命令docker network inspect my-bridge(网桥名称)
    b. 内网IP为172.18.0.2(之前没指定都是默认的172.17.xx.xx,即默认的docker0).

标签:test1,bridge,test2,name,方式,容器,IP,docker
From: https://blog.51cto.com/u_16255561/7762896

相关文章

  • CentOS配置静态IP
     查看当前IP,并记录ens33是用物理网线连接的网卡名称,局域网IP地址:192.168.229.137配置静态IPls/etc/sysconfig/network-scripts/其中ifcfg-ens33就是ens33网卡名称对应的网络配置文件备份现有的配置文件,这样如果配置错误可以恢复。sudocp/et......
  • Linux Centos7 安装Docker环境
    一、Docker介绍Docker是一个开源的容器引擎,基于Go语言开发,同时基于Apache2.0协议开发。对Docker简单的理解就是使用Docker可以把一台服务器隔离成一个个独立的容器,我们可以把这地方描述的容器理解成一个沙盒。在每个容器中运行一个程序,不同的容器之间相互隔离,容器的创建,停止,以及......
  • eclipase项目导入错误Some projects cannot be imported because they already exist
    根本原因:workplace和工程名冲突解决办法:1.新建一个目录,打开工程选择该路径 2.导入实际工程得路径位置 ......
  • 最高院-现行法律并不排斥承包人以发函、申请参与分配等非诉讼方式主张优先受偿权
    (2021)最高法民申2026号  山西龙鑫恒泰能源焦化有限公司、中冶天工集团有限公司再审审查与审判监督民事裁定书本院认为:《最高人民法院关于建设工程价款优先受偿权问题的批复》第四条规定:“建设工程承包人行使优先权的期限为六个月,自建设工程竣工之日或者建设工程合同约定的竣工......
  • 创建Vue实例方式一(基于核心包)
    基于核心包创建Vue实例核心包就是Vue.jsvue2地址:https://v2.cn.vuejs.org/vue3地址:https://cn.vuejs.org/注意开发版本和生产版本,学习建议使用开发版本  ......
  • TiDB恢复部分表的方式方法
    TiDB恢复部分表的方式方法背景今天同事告知误删了部分表.因为是UAT准生产的环境,所以仅有每天晚上11点的备份处理.同时告知昨天的数据也可以.得到认可后进行了TiDB的单表备份恢复.备份的语句注意TiDB是可以增量备份恢复的但是为了快速的恢复和解决背景中的问题.......
  • JavaScript实现大文件分片上传处理
    很多时候我们在处理文件上传时,如视频文件,小则几十M,大则1G+,以一般的HTTP请求发送数据的方式的话,会遇到的问题:1、文件过大,超出服务端的请求大小限制;2、请求时间过长,请求超时;3、传输中断,必须重新上传导致前功尽弃这些问题很影响用户的体验感,所以下面介绍一种基于原生JavaScript进......
  • 重磅:FPGA实现MIPI DSI4线720P
    1.液晶屏概述 显示屏LCDMIPIDSI4lane,支持分辨率720*1280,60HZ彩色显示。用于对接国产GOWIN的NR-9C的开发板和LATTICE的CROSSLINK开发板,显示MIPIDSI功能。     MIPIDSI是4-LANE,MIPI速率在480MHZ。支持LP模式初始化和HS模式显示数据发送。     屏是5寸,支持DSIS......
  • TCP/IP 协议
    目录TCP协议格式TCP三次握手TCP四次挥手TCP与UDP对比TCP工作在网络OSI七层模型中的第四层--传输层,IP在第三层--网络层。应用层法下来,每一层都会添加头部信息进行封装,然后在发送到接收端。TCP协议格式TCP段TCP首部用户数据TCP段大小也是有限制的,最大为1460......
  • 重磅:FPGA实现MIPI DSI4线720P
    1.液晶屏概述 显示屏LCDMIPIDSI4lane,支持分辨率720*1280,60HZ彩色显示。用于对接国产GOWIN的NR-9C的开发板和LATTICE的CROSSLINK开发板,显示MIPIDSI功能。      MIPIDSI是4-LANE,MIPI速率在480MHZ。支持LP模式初始化和HS模式显示数据发送。        ......