从零开始学习docker(三)link
撸了今年阿里、头条和美团的面试,我有一个重要发现.......>>>
需求
我们有两个容器,一个容器启动的后台服务,一个容器启动的mysql服务。后台服务必须知道mysql服务的IP地址是什么。但在开发的过程中,我们并不知道我们mysql数据库的ip地址是多少。
解决办法
我们可以给mysql一个名字,通过名字访问容器,名字是固定的。把第二个容器link到第一个容器上面,在第一个容器上面只需要通过name就可以访问了。
我们将上一节中的test2容器停止并且删除:
iie4bu@hostdocker:~$ docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d85b091d4deb ubuntu:xenial "/bin/bash -c 'while…" 4 hours ago Up 4 hours test2
b21a9d817e25 ubuntu:xenial "/bin/bash -c 'while…" 4 hours ago Up 4 hours test1
iie4bu@hostdocker:~$ docker container stop test2
test2
iie4bu@hostdocker:~$ docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b21a9d817e25 ubuntu:xenial "/bin/bash -c 'while…" 4 hours ago Up 4 hours test1
iie4bu@hostdocker:~$ docker container rm test2
test2
iie4bu@hostdocker:~$ docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b21a9d817e25 ubuntu:xenial "/bin/bash -c 'while…" 4 hours ago Up 4 hours test1
我们新建test2容器,并将test2容器link到test1容器上面。
iie4bu@hostdocker:~$ sudo docker run -d --name test2 --link test1 ubuntu:xenial /bin/bash -c "while true; do sleep 3600; done"
--link的格式:
--link <name or id>:alias
其中,name和id是源容器的name和id,alias是源容器在link下的别名。
我们在test2中可以ping通test1的IP地址的。
root@7fe6f95d2992:/# ping 172.17.0.2
PING 172.17.0.2 (172.17.0.2) 56(84) bytes of data.
64 bytes from 172.17.0.2: icmp_seq=1 ttl=64 time=0.094 ms
64 bytes from 172.17.0.2: icmp_seq=2 ttl=64 time=0.062 ms
64 bytes from 172.17.0.2: icmp_seq=3 ttl=64 time=0.062 ms
64 bytes from 172.17.0.2: icmp_seq=4 ttl=64 time=0.062 ms
64 bytes from 172.17.0.2: icmp_seq=5 ttl=64 time=0.059 ms
此外我们在test2中是不是可以ping通test1的名字呢?答案是可以的
root@7fe6f95d2992:/# ping test1
PING test1 (172.17.0.2) 56(84) bytes of data.
64 bytes from test1 (172.17.0.2): icmp_seq=1 ttl=64 time=0.093 ms
64 bytes from test1 (172.17.0.2): icmp_seq=2 ttl=64 time=0.061 ms
64 bytes from test1 (172.17.0.2): icmp_seq=3 ttl=64 time=0.063 ms
^C
--- test1 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 1998ms
原因就是我们使用--link的方式,给test2添加了一个dns的一个记录。这样在test2中不需要知道test1的具体ip地址了。只需要知道名字就行。
然而我们在test1中是无法根据test2的名字ping通的。因为link是有方向的。
使用link的方式在生产环境中并不常见,后面介绍常见的解决办法。
从零开始学习docker(三)link相关推荐
- 从零开始学习jQuery (三) 管理jQuery包装集
本系列文章导航 从零开始学习jQuery (一) 开天辟地入门篇 从零开始学习jQuery (二) 万能的选择器 从零开始学习jQuery (三) 管理jQuery包装集 从零开始学习jQuery ( ...
- [297]从零开始学习Docker
这篇文章是我学习 Docker 的记录,大部分内容摘抄自 <<Docker - 从入门到实践>> 一书,并非本人原创. 学习过程中整理成适合我自己的笔记,其中也包含了我自己的实 ...
- 从零开始学习docker(二十)RoutingMesh--Ingress负载均衡
我们知道容器之间的通信,例如上图中的10.0.9.3与10.0.9.5通信是通过overlay网络,是通过一个VXLAN tannel来实现的. 但是service和service之间通信是通过VIP ...
- 从零开始学习docker(十九)Swarm mode 集群服务间通信--RoutingMesh
撸了今年阿里.头条和美团的面试,我有一个重要发现.......>>> 在上一节中,我们介绍了通过service create部署了wordpress和mysql,我们发现了几个问题: ...
- 从零开始学习docker(十七)Swarm mode ---service
撸了今年阿里.头条和美团的面试,我有一个重要发现.......>>> 上一节中,我们学习了如何搭建一个swarm集群.本节中,我们介绍如何操作service. service,大家应 ...
- 从零开始学习docker(十六)Swarm mode 创建集群
撸了今年阿里.头条和美团的面试,我有一个重要发现.......>>> 这一节我们介绍如何搭建一个三节点的swarm集群.安装docker的同时,swarm已经内置了.所以不需要额外安 ...
- 从零开始学习docker(十五)Swarm mode 介绍
撸了今年阿里.头条和美团的面试,我有一个重要发现.......>>> 一般情况下,我们都在一台机器下部署容器,但实际情况下,应用如果只在一台机器上无法满足我们的需求,包含的容器比较多 ...
- 从零开始学习docker(十三)Docker Compose--scale
撸了今年阿里.头条和美团的面试,我有一个重要发现.......>>> 环境准备,上一节中的flask-redis项目,将项目启动: docker-compose up -d Star ...
- 从零开始学习docker(十一)介绍Docker Compose yml文件介绍
撸了今年阿里.头条和美团的面试,我有一个重要发现.......>>> 如果我们有一个App,他由多个container组成,那么这个App的维护会非常繁琐. 包括: 要从Docker ...
最新文章
- git 查看修改的代码行数,新增的文件以及删除的代码行数
- 仅用 4 小时,吃透“百度太行”背后硬科技!
- Spring Cloud微服务实战pdf
- C语言二级指针与典型应用(1)
- 虚机和实体服务器性能,虚机的性能主要与以下几方面有关
- 如何用计算机管理员权限,教你电脑使用代码添加管理员权限的详细教程
- “use strict” 严格模式使用(前端基础系列)
- linux和windows下icmp的区别
- 【在线课件制作软件】Focusky教程 | 导出PDF并打印
- 网络知识:路由器常见故障分析及处理方法
- 深圳华睿彩印高温玻璃打印机介绍
- CSS超链接标记大全
- c语言如何反复执行一段程序,C语言中重复执行程序的问题
- android移动拼图小游戏的图片,利用ViewDragHelper轻松实现Android拼图游戏
- python打九九乘法表上三角下三角_python经典练习题之九九乘法表、打印菱形、打印对顶三角形、斐波拉契数列、素数... - 小黑电脑...
- 【网络编程】Linux tcpdump命令详解---编辑中
- 2022出海拉美:秘鲁电商市场现状及发展前景
- 鸟人的Android揭秘(5)——搭建Android SDK开发环境(一)
- 发那科2021参数_发那科系统FANUC:参数修改。
- 教学信息管理系统c语言编程,C语言课程设计【学院教学信息管理系统】.doc
热门文章
- 用户 'sa' 登录失败。 (Microsoft SQL Server,错误: 18456)
- C#和Java详细描述
- Tensorflow在python3.7版本的运行并且在pycharm安装tensorflow(亲测)
- GitChat · 大数据 | 一步一步学习大数据:Hadoop 生态系统与场景
- mysql使用索引为什么查询速度变快很多?
- Vue的报错Echarts Cannot read property ‘init‘ of undefined
- CSS3的flex布局:方向 换行 对齐 顺序
- JS的window-location
- mysql 图形插件_对我来说数据库图形化管理工具用这个足够了
- 虾皮如何注册店铺_虾皮跨境电商怎样注册店铺?做(shopee)虾皮电商靠谱吗