我正在运行带有mongodb的docker容器
someId mongo:3.6 "docker-entrypoint.s…" 11 days ago Up 11 days 0.0.0.0:27017->27017/tcp myMongo
当我尝试通过mongo localhost:27017
从本地计算机连接到该mongo时,出现错误
error: couldn't connect to server localhost:27017, connection attempt failed: SocketException: Error connecting to localhost:27017 (127.0.0.1:27017) :: caused by :: Connection refused :
connect@src/mongo/shell/mongo.js:328:13
我做错了什么?
更新
这是docker-compose ps
myMongo docker-entrypoint.sh --wir ... Up 0.0.0.0:27017->27017/tcp
Docker-compose文件
version: '2'
services:
mongo:
image: "mongo:3.6"
container_name: myMongo
ports:
- "27017:27017"
mem_limit: 2G
更新最终版本
重新启动我的ubuntu,重新启动docker-compose,一切按预期开始工作:mongo localhost
现在可以工作了。怀疑ubuntu 18.04注销过程中存在问题,因为在此之前(以及在系统重新启动之前)我执行了几次注销/登录
答案 0 :(得分:0)
启动docker mongo容器并从本地系统连接的步骤:
将docker docker-compose.yml
文件创建为:
version: '2'
services:
mongo:
image: "mongo:3.6"
container_name: myMongo
ports:
- "27017:27017"
mem_limit: 2G
在搭建docker composer之前,您应该检查端口27017是否已被其他进程占用,如:
netstat -an | grep 27017
或
lsof -i -P ;// look for the port 27017
如果端口号27017已被占用,则必须将docker compose中的端口号从27027更改为您想要的任何端口。
通过以下命令启动docker容器[无论docker-compose.yml文件所在的目录都必须位于同一目录中
docker-compose up
现在,具有mongo db 3.6的docker容器已启动并正在运行,如果默认端口为27017,则打开新终端并以mongo
的身份连接mongo shell,否则为mongo --port <whateverport number in docker compose>
希望这个解释对您以及其他人也有帮助:)