Docker容器之间互访
准备部署基于springboot+nacos+redis+mysql程序,每个组件都分别放到指定容器中,此时就遇到了一个问题,那就是容器之间怎么才能互相访问?下面介绍一下容器互访的解决方式。本文使用的centos是自定义的centos镜像,可以直接在容器中使用vim,ifconfig命令,该镜像对应的DockerFile见链接
方式一、通过IP直接访问
在宿主机上通过ifconfig可以看到,当我们在宿主机上安装docker时,会默认创建一个内部的桥接网络docker0,每创建一个容器就会对应的分配一个虚拟网卡,容器之间可以通过ip直接访问
1、运行命令 docker run -it --name lcg mycentos:1.3 创建一个容器,并查看ip地址为:172.17.0.3
2、运行命令 docker run -it --name lcg1 mycentos:1.3 创建一个容器,并查看ip地址为:172.17.0.4
3、在两个容器之间互相ping对方,或者ping宿主机都能ping通
这样就可以实现容器之间及宿主机之间的互访了,但是这种方式在面对集群部署就显得不友好了,所以实际应用中很少用
方式二、通过使用link实现访问
通过link参数实现访问
1、使用命令docker run -it --name lcg mycentos:1.3 启动第一容器
2、启动第二个容器时,使用link参数
docker run -it --name lcg1 --link lcg:lcgsky mycentos:1.3
第二个容器命名lcg1,并将其连接到lcg容器中。注意--link lcg:lcgsky,lcg为容器名称,lcgsky表示网络/容器别名。实际使用过程中建议用相同名称,docker run -it --name lcg1 --link lcg:lcg mycentos:1.3 ,容器名称和别名一致的时候可以直接写成 docker run -it --name lcg1 --link lcg mycentos:1.3
3、查看 容器二中的hosts文件,cat /etc/hosts
可以看到 172.17.0.2 与 lcg 对应
4、在lcg1中ping lcg,及ping 172.17.0.2
可以正常ping通
5、在lcg容器中ping lcg1及172.17.0.3
可以发现ping lcg1不通,ping 172.17.0.3,可以ping通,这说明采用link方式有先后顺序,实际应用中如果多容器互访使用可能就不方便了。
方式三、通过自定义bridge访问
1、运行 docker network create lcgnet 创建一个新的bridge网络,并通过 docker network ls查看
2、通过指定网络的方式创建容器lcg
docker run -it --name lcg --network lcgnet --network-alias lcgsky mycentos:1.3
--network lcgnet :表示使用lcgnet网络
--network-alias lcgsky: 表示网络别名为lcgsky
2、使用相同方式创建容器lcg1
docker run -it --name lcg1 --network lcgnet --network-alias lcgsky1 mycentos:1.3
3、两个容器之间互访
4.推荐使用这种方法,若访问容器中服务,可以使用 网络别名加端口号访问 这用方式访问
Docker容器之间互访相关推荐
- 微服务架构与Docker容器之间关系
微服务j架构与Docker容器之间关系 因公司业务市场的发展与技术架构等结合因素,希望接下来的产品架构能支撑轻量级.高并发.大数据.智能化.易维护.动态扩展等方向发展,因项目性能问题需要处理,公司架构 ...
- Docker精华问答 | 多个 Docker 容器之间共享数据怎么办?
在计算机技术日新月异的今天, Docker 在国内发展的如火如荼.特别是在一线互联网公司 Docker 的使用是十分普遍的,甚至成为了一些企业面试的加分项,那么今天我们继续关于Docker 的精华问答 ...
- docker 容器共享数据_如何在Docker容器之间共享数据
docker 容器共享数据 介绍 (Introduction) Docker is a popular containerization tool used to provide software a ...
- Docker容器之间数据传输
Docker容器之间数据传输 1.从容器中将文件拷贝到宿主机上. 在宿主机你想要接收文件的地方,运行下面的指令 docker cp 容器id:home/test . docker run -d --n ...
- Docker容器之间的通信
前言 平常在使用Docker容器部署项目的时,比如我们构建一个SpringBoot项目的容器和一个Redis的容器,我们希望SpringBoot项目可以正常访问到Redis容器,通常做法是这样的: 假 ...
- docker 容器之间通信_四、Docker 网络原理、分类及容器互联配置
本文是<Docker必知必会系列>第四篇,原文发布于个人博客:悟尘纪. 上一篇:Docker必知必会系列(三):基于 Docker-registry/Nexus3 搭建本地仓库 Docke ...
- Docker容器之间相互访问
因为我们的项目需要使用mysql及redis这些,所以我们需要进行相互访问 三种通讯方式 方案1:容器之间默认可以使用容器的ip进行通信,但是重启docker,ip会变化.查看ip如下: docker ...
- Docker篇之docker容器之间的通信
自从Docker容器工具诞生以来,当我们在正式线上环境进行容器部署以及容器管理任务时,通常容器之间是需要进行数据通信的,来支撑正常业务运转.因此容器间的通信也随之成为热点,也是生产环境中的重中之重. ...
- docker 容器之间通信_还不清楚docker容器间是如何通信的?看这篇文章就够了
如果觉得文章有帮助,欢迎点击头像关注我获取更多原创文章,同时也欢迎转发. 同时也可以在我的历史文章中找到Linux操作系统相关的服务器运维管理入门系列文章,欢迎交流. 前文演示docker容器内部数据 ...
- 宿主机和docker容器之间的文件拷贝
1.从容器里面拷文件到宿主机 在宿主机里面执行以下命令: docker cp 容器名:要拷贝的文件在容器里面的路径 要拷贝到宿主机的相应路径 示例: 假设容器名为nginx,要从容器里面拷贝的文件路为 ...
最新文章
- vim 多窗口,多tab编辑
- select 1 from table
- Linux 自带的LED 灯驱动实验
- 信息学奥赛一本通C++语言——1052:计算邮资
- java页面代码下载_java 下载页面代码
- 国内外优秀音视频博客索引(持续更新)
- 拓端tecdat|R语言广义线性模型索赔频率预测:过度分散、风险暴露数和树状图可视化
- django rest framework serializer 增加自定义字段
- uni-app 小程序引入字体图标
- 【IoT】创业:什么是设计思维,如何使用?
- 淘宝客返利网的实现方法
- PMP常考知识点核对单-8.项目质量管理
- linux手动焦距,摄影师必学!如何精准的手动对焦
- 比赛记录——记录一次失败的比赛,九坤量化验证码识别大赛
- 银河麒麟系统安装失败
- SQLServer数据库安全规划全攻略(转)
- Oracle实现使用时间函数实现输出“上午好/下午好”
- rmarkdown入门
- 破解大数据孤岛化 SaaS主流厂商共建开放标准
- php 逆序数组不使用reverse,PHP多维数组排序array_reverse不起作用?
热门文章
- MATLAB用solve求解普通二元高次方程
- 独立思考者的思考模型----智商160以上的人都应该学会的(摘自杜牛牛博客)
- 数据库MySQL创库、创表基本命令
- python描述对象静态特性的数据为_短期借款利息数额不大,可以直接支付,不预提,在实际支付时直接记入的账户是( )。...
- ROS学习笔记4_订阅者Subscriber
- dbt-tidb 1.2.0 尝鲜
- CO BW成本报表建立小结
- python3,烤地瓜案例
- 3DsMax——竹篮制作
- Java基础-数组01