【发布时间】:2017-10-18 03:03:15
【问题描述】:
我有 2 个容器 mgmt-app 是 Meteor 容器,mgmt-mongo 是 MongoDB。
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7b65be4ac454 gitlab-lab:5005/dfc/mongo:latest "/entrypoint.sh mongo" About an hour ago Up About an hour 27017/tcp mgmt-mongo
dff0b3c69c5f gitlab-lab:5005/dfc/mgmt-docker-gui:lab "/bin/sh -c 'sh $METE" About an hour ago Up 42 minutes 0.0.0.0:80->80/tcp mgmt-app
我想从我的 Docker 主机运行 docker run gitlab-lab:5005/dfc/mgmt-docker-gui:lab ls -al
但我有这个错误:
=> Starting meteor app on port:80
/app/programs/server/node_modules/fibers/future.js:280
throw(ex);
^
Error: MONGO_URL must be set in environment
所以我尝试了:
docker run -e "MONGO_URL=mongodb://mgmt-mongo:27017/meteor" gitlab-lab:5005/dfc/mgmt-docker-gui:lab ls -al
然后错误是:
/app/programs/server/node_modules/fibers/future.js:313
throw(ex);
^
MongoError: failed to connect to server [mgmt-mongo:27017] on first connect
我真的不明白,因为当我用这个文件做docker-compose up -d 时:
mgmt-app:
image: gitlab-lab:5005/dfc/mgmt-docker-gui:latest
container_name: mgmt-app
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- $HOME/.docker:/root/.docker
- /home/dockeradm/compose/area:/home/dockeradm/compose/area
environment:
- ROOT_URL=http://localhost:80
- MONGO_URL=mongodb://mgmt-mongo:27017/meteor
ports:
- 80:80
restart: always
mgmt-mongo:
image: gitlab-lab:5005/dfc/mongo:latest
container_name: mgmt-mongo
volumes:
- mgmt_mongo_data_config:/data/configdb
- mgmt_mongo_data_db:/data/db
restart: always
一切顺利。
所以我的要求是,我应该怎么做我的docker run 来执行我的命令? (命令不是简单的ls -al,但是demo就可以了)
【问题讨论】:
-
对我来说似乎是 DNS 解析问题。设置 MONGO_URL 参数时,可以用 IP 地址代替 mgmt-mongo 吗?
-
@RamanSailopal 但为什么它可以与
docker-compose一起使用,在这个中它不是ip 而是名称?并且错误与名称相同failed to connect to server...
标签: bash mongodb shell docker docker-compose