docker - 如何将容器链接传递给子容器?
问题描述
我运行 postgres 容器:
docker run --name db -p 5432:5432 postgres
然后我运行一些带有 postgres 容器链接的容器 A:
docker run --name A --link=db:db [other params]
现在我在容器 A 内,想从这里运行容器 B。B也需要db
链接。我该怎么做?
解决方案
简短而简单:只需传递--link=db:db
给子容器即可。例子:
$ docker run --rm -d --name db postgres:alpine
$ docker run --rm -it --name contA --link=db:db -v /var/run/docker.sock:/var/run/docker.sock docker:stable
/ # ping db
PING db (172.17.0.2): 56 data bytes
64 bytes from 172.17.0.2: seq=0 ttl=64 time=0.357 ms
[...] # works
/ # docker run --rm -it --name contB --link=db:db alpine:latest
/ # ping db
PING db (172.17.0.2): 56 data bytes
64 bytes from 172.17.0.2: seq=0 ttl=64 time=0.388 ms
[...] # works as well
($
是本地机器的 Bash,/ #
是contA
/的外壳contB
。我试图缩进一些东西,希望能让兔子洞的水平清晰。)
推荐阅读
- excel - 基于表 MakroExcelVBA 的 MultiFInd 替换
- ios - iOS13 引入深色模式时,为什么 UIUserInterfaceStyle 需要 iOS12?
- ubuntu - gitlab ssh runner 失败。怎么了?
- azure-webjobs - 触发的网络作业是否在所有实例上运行?
- reactjs - React-Table 中的 React-Tooltip 在导航到其他页面后停止工作
- php - 字符到整数值的转换(或有时返回数组)
- python - Python:将音频频谱数据转换为频率平均-scipy
- macros - Jinja2:如何编写宏以有条件地包含内容
- r - 将特定选项卡从 Excel 读入 R
- c# - LinqtoSQL 带回来只需要