博客
关于我
Docker 入门系列(6)- Docker 互联
阅读量:498 次
发布时间:2019-03-07

本文共 1089 字,大约阅读时间需要 3 分钟。

容器互联机制

容器的互联是让多个容器之间快速交互的重要方式。它通过创建源接收容器之间的连接关系,使接收容器可以通过容器名字直接访问源容器,无需指定具体IP地址。

自定义容器命名

容器的名称在容器管理中至关重要。虽然系统会默认为容器分配一个名字,但自定义容器名称有其必要性:

  • 自定义命名便于记忆
  • 即使容器重新启动,仍可通过容器名进行管理和连接

使用--name标记可以为容器自定义名称。例如:

docker run -d -P --name web training/webapp python app.py

命令执行后可使用以下命令查看容器详情:

docker inspect -f "{Name: \"web\"}" 57/web

需要注意,容器名称必须唯一。如果已存在名为web的容器,执行docker rm -f web后才能重新使用该名称。同时,--rm-d标记不能同时使用。

容器互联

通过--link参数实现容器间安全互联。例如创建一个数据库容器:

docker run -d --name db training/postgres

删除已有web容器:

docker rm -f web

创建新的web容器并连接到db容器:

docker run -d -P --name web --link db:db training/webapp python app.py

此时dbweb容器已建立互联关系。可以通过以下方式查看联接状态:

docker ps -a

容器间互联默认会创建虚拟网络通道,无需映射端口到宿主网络即可实现通信。

Docker在实现容器互联时,会更新环境变量和/etc/hosts文件,以便容器内的应用程序能够通过容器名进行通信。

环境变量是实现容器间互联的重要手段。例如连接到db容器的web容器会收到类似以下环境变量:

DB_PORT=tcp://172.17.0.3:5432DB_NAME=/web/db

这些环境变量使应用程序能够安全地通过网络协议与目标容器通信。

例如,在web容器中执行以下命令可查看相关环境变量:

docker run --rm --name web2 --link db:db training/webapp env

此外,Docker还会在web容器的/etc/hosts文件中添加db容器的IP地址信息:

172.17.0.3	db

这样可以确保web容器内部应用程序能够通过IP地址或容器名与db容器进行通信。

多个容器可以同时连接到一个数据库容器,利用Docker的网络机制轻松管理复杂的容器间通信。

转载地址:http://sckjz.baihongyu.com/

你可能感兴趣的文章
Openlayers中使用Image的rotation实现车辆定位导航带转角(判断车辆图片旋转角度)
查看>>
Openlayers中使用Overlay实现点击要素弹窗并且弹窗随之移动
查看>>
Vmware系列&虚拟机系列【仅供参考】:使用vCenter Auto Deploy制作ESXI系统封装(适合高版本vSphere)
查看>>
Openlayers中加载GeoJson文件显示地图
查看>>
Openlayers中加载Geoserver切割的EPSG:900913离线瓦片图层组
查看>>
Openlayers中加载Geoserver切割的EPSG:900913离线瓦片地图并显示
查看>>
Openlayers中多图层遮挡时调整图层上下顺序
查看>>
Openlayers中实现地图上打点并显示图标和文字
查看>>
Openlayers中实现地图上添加一条红色直线
查看>>
Openlayers中将某个feature置于最上层
查看>>
Openlayers中点击地图获取坐标并输出
查看>>
Openlayers中设置定时绘制和清理直线图层
查看>>
OpenLayers使用点要素作为标记
查看>>
Openlayers入门教程 --- 万字长篇
查看>>
Openlayers各组件默认的css样式
查看>>
Openlayers图文版实战,vue项目从0到1做基础配置
查看>>
VM16+ubuntu20.04+win10如何固定虚拟机的ip (固定IP)
查看>>
OpenLayers学习一:地图加载(以类为接口)
查看>>
OpenLayers学习三:地图旋转及地图跳转到某一点的方式(以类为接口)
查看>>
OpenLayers学习二:点标记的添加删除和修改(以类为接口)
查看>>