docker实战 如何组织一个多容器项目 -- 0713

多容器间如何通信

通过容器ip访问

容器重启后,ip会发生变化。通过容器ip访问不是一个好的方案。

通过上节课得在线docker链接再次进入
1、运行一个nginx容器:
	docker run -d -p 80:80 --name myng nginx
	--name myng: 取别名,后续可通过别名访问和操作容器
2、进入容器:
	docker exec -it myng bash
3、查看ip:
	cat /etc/hosts
	会看到如下的IP和容器id

在这里插入图片描述

4、退出容器:
	exit
5、创建一个alpine容器:(最小的linux系统)
	docker run -dit alpine
	-dit: 阻塞运行
6、进入alpine容器:
	docker exec -it 1e sh
	1e:容器id前几位(标志位,会自动查找,能唯一识别)
7、安装curl:
	apk add curl
8、访问另外一个myng容器:(通过ip)
	curl 172.17.0.2

在这里插入图片描述

9、退出容器:
	exit

通过宿主机的ip:port访问

通过宿主机的ip:port访问,只能依靠监听在暴露出的端口的进程来进行有限的通信。

通过link建立连接(官方不推荐使用)

运行容器时,指定参数link,使得源容器与被链接的容器可以进行相互通信,并且接受的容器可以获得源容器的一些数据,比如:环境变量。

1、创建一个nginx容器:
	docker run -d -p 80:80 --name myng nginx
2、创建一个alpine容器:(直接link)
	docker run -dit --link myng:myng alpine
	--link myng:myng:  源容器别名:访问名
3、进入alpine容器:
	docker exec -dit dc sh
4、安装curl:
	apk add curl
5、访问nginx容器:
	curl myng

在这里插入图片描述

6、退出容器:
	exit

除了环境变量之外,Docker还将源容器的主机条目添加到/etc/hosts文件中。
在这里插入图片描述

通过 User-defined networks(推荐)

docker network来创建一个桥接网络,在docker run的时候将容器指定到新创建的桥接网络中,这样同一桥接网络中的容器就可以通过互相访问。

未完,待补充

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值