Docker 容器间依赖与资源管理
1. 容器间依赖问题
在使用 Docker 构建网络容器并了解其与网络的交互方式后,我们需要学习如何在一个容器中使用另一个容器的网络软件。由于桥接网络在容器创建时动态分配 IP 地址,本地服务发现变得复杂。
解决此问题的方法有:
- 使用本地 DNS 服务器和容器启动时的注册钩子。
- 编写程序扫描本地网络中监听已知端口的 IP 地址。
但这两种方法都需要额外的工作量和工具,且在禁用任意容器间通信时会失效。也可以强制所有流量通过主机接口进出已知发布端口,但有时需要对网络端口进行特权访问。Docker 提供了另一种工具来处理这种情况。
2. 本地服务发现的链接机制
2.1 链接介绍
创建新容器时,可以让 Docker 将其链接到其他正在运行的容器。添加链接会产生以下效果:
- 创建描述目标容器端点的环境变量。
- 将链接别名添加到新容器的 DNS 覆盖列表中,并关联目标容器的 IP 地址。
- 若禁用容器间通信,Docker 会添加特定防火墙规则,允许链接容器之间进行通信。
例如:
docker run -d --name importantData \
--expose 3306 \
dockerinaction/mysql_noauth \
service mysql_noauth start
docker run -d --name importantWebapp \
--link impora
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



