在一次环境部署中 ,发现无法 link 到 已运行的通过 docker-compose 部署的 mongo . 报错

docker: Error response from daemon: Cannot link to /mongo, as it does not belong to the default network 现记录解决方案.

首先通过命令列出所有 docker 网络 .

1
docker network ls

docker-compose 在运行时会创建一个新的网络 . 例如在我遇到的情况中,是已有一个由 docker-compose 运行的 docker_appnet 的网络 , 后面想通过 docker run xxx 命令链接上 docker_appnet 网络 .

原本我的运行命令是

1
2
3
4
5
6
7
docker run -d \
--name yapi \
--link mongo:mongo \
--workdir /api/vendors \
-p 3000:3000 \
registry.cn-hangzhou.aliyuncs.com/anoy/yapi \
server/app.js

此时无法正常运行 , 报出文章开头的错误 .

正确的运行命令应该是

1
2
3
4
5
6
7
8
docker run -d \
--name yapi \
--link mongo:mongo \
--net docker_appnet \
--workdir /api/vendors \
-p 3000:3000 \
registry.cn-hangzhou.aliyuncs.com/anoy/yapi \
server/app.js

参考链接