我正在尝试使用docker compose运行我的node.js app和mongodb。我可以按如下方式成功设置容器。该网站也在工作。但是我无法进入容器。
docker ps -a
输出
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
68582ac4aa9a projet/nodeserver "/bin/bash -c 'sourc…" 2 hours ago Up 2 hours 0.0.0.0:8080->8080/tcp apiserver
81b6c0c65e43 mongo "docker-entrypoint.s…" 2 hours ago Up 2 hours 0.0.0.0:27017->27017/tcp mongodb
此外,我还可以使用主机(Mac)中的mongodb客户端连接mongodb服务器。但是当我尝试ssh到mongodb容器时,它会抛出以下错误。
Ssh进入mongo docker
docker exec -it mongodb /bin/bash
错误
connection error: desc = "transport: dial unix /var/run/docker/containerd/docker-containerd.sock: connect: connection refused": unknown
这是什么意思?我该如何解决?
答案 0 :(得分:0)
请输入结果这个命令:
docker images | grep mongo
可能你的容器没有bash。您可以测试/bin/sh
而不是/bin/bash
答案 1 :(得分:0)
尝试使用docker exec -it mongo / bin / bash而不是docker exec -it mongodb / bin / bash。你的容器名称是mongo,而不是mongodb。
答案 2 :(得分:0)
您可以尝试运行第2步或尝试删除此容器 docker rm 81b6c0c65e43
并运行此
1. docker run --name mongo --restart=always -d -p 27017:27017 mongo mongod --auth
2. docker exec -i -t mongo bash
答案 3 :(得分:0)
您使用的是哪个版本的码头工具?你可能遇到了这个似乎由最后一个docker-ce版本(17.12.1-ce)解决的issue