无法登录docker容器

时间:2018-02-22 08:57:40

标签: node.js mongodb docker docker-compose

我正在尝试使用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

这是什么意思?我该如何解决?

4 个答案:

答案 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

This my test (pic)

答案 3 :(得分:0)

您使用的是哪个版本的码头工具?你可能遇到了这个似乎由最后一个docker-ce版本(17.12.1-ce)解决的issue