当前位置: 首页 > 知识库问答 >
问题:

直接将SSH连接到docker容器中

壤驷乐邦
2023-03-14

我有一些docker conatiner,现在我想用ssh进入一个。我通过ssh连接到了docker容器。

但是现在我有一个问题,我不知道我可以用哪个用户访问这个容器?

我在主机(web)上的两个用户中都尝试过

共有3个答案

徐俊人
2023-03-14

1.issue命令docker检查(容器ID或名称)

你会得到这样的结果

   "IPv6Gateway": "",
            "MacAddress": "",
            "Networks": {
                "my_bridge": {
                    "IPAMConfig": {
                        "IPv4Address": "172.17.0.20"
                    },
                    "Links": null,
                    "Aliases": [
                        "3784372432",
                        "xxx",
                        "xxx2"
                    ],
                    "NetworkID": "ff7ea463ae3e6e6a099e0e044610cdcdc45b21f7e8c77a814aebfd3b2becd306",
                    "EndpointID": "6be4ea138f546b030bb08cf2c8af0f637e8e4ba81959c33fb5125ea0d93af967",
                    "Gateway": "172.17.0.1",
                    "IPAddress": "172.17.0.20",
                    "IPPrefixLen": 24,
...

欧浩淼
2023-03-14

如果要直接连接到Docker容器,而不连接到Docker主机,Docker文件应包括以下内容:

# SSH login fix. Otherwise user is kicked off after login
RUN echo 'root:pass' | chpasswd
RUN mkdir /var/run/sshd
RUN sed 's@session\s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g' -i /etc/pam.d/sshd

EXPOSE 22
CMD ["/usr/sbin/sshd", "-D"]

然后使用带有-p和-d标志的docker运行。例子:

docker run -p 8022:22 -d your-docker-image

您可以连接到:

ssh root@your-host -p8022
太叔望
2023-03-14

您可以使用以下各项直接放入运行中的容器:

$ docker exec -it myContainer /bin/bash

您可以在未运行以下命令的容器上获取shell:

$ docker run -it myContainer /bin/bash

这是在容器上获得shell的首选方法。运行SSH服务器被认为不是一个好的实践,尽管有一些用例,但应该尽可能避免。

 类似资料:
  • 我的数据库连接是用下面的类处理的: 这是我的spring boot控制器 下面是我的dockerfile: 我读了这里和这里提到的解决方案。也阅读了一些教程,但我无法将这些解决方案中的任何一个适合我的代码。在我的代码中,我应该在哪里更改?

  • 问题内容: 我正在使用docker- compose 运行一个应用程序。一切正常,通过连接到容器内的Mongo,我可以看到所有数据。但是,当我连接到RoboMongo时,我看不到任何数据。 我该如何解决这个问题? 问题答案: 您应该在Docker容器内建立到MongoDB的Robomongo SSH隧道连接。首先,您应该在docker容器中安装一个ssh服务器。 https://docs.dock

  • 作为解决Hibernate OGM连接问题的一部分,我想看看我是否从Robo 3T连接。 我构建我的MongoDB映像并开始运行。 docker ps: MacBook-Pro:GoStopHandle NOTiFY$docker ps容器ID图像 命令创建状态端口名称0375a68b9988 goStop handlemongob:最新 "docker-entrypoint. s..."5秒前上

  • 我无法将作为docker容器运行的应用程序连接到mongoDB。我知道新版本docker compose不推荐使用“链接”,所以我尝试使用自定义网络。我的码头工人。yml: 我的应用程序的Dockerfile: 当我运行时,我在应用程序中得到以下错误消息: 在第一次连接时连接到服务器[127.0.0.1:27017]失败[MongoNetworkError:连接ECONNREFUSED127.0.

  • 我拉出了mysql docker映像,并用命令运行容器: 此时,springBoot在本地工作。它与MySQL连接: 现在,我希望springBoot应用程序也在单独的docker容器上,在同一服务器上。为此,我使用了DockerFile: 同样,它无法连接到数据库:

  • 主要内容:网络端口映射,Docker 容器互联,配置 DNS前面我们实现了通过网络端口来访问运行在 docker 容器内的服务。 容器中可以运行一些网络应用,要让外部也可以访问这些应用,可以通过 -P 或 -p 参数来指定端口映射。 下面我们来实现通过端口连接到一个 docker 容器。 网络端口映射 我们创建了一个 python 应用的容器。 另外,我们可以指定容器绑定的网络地址,比如绑定 127.0.0.1。 我们使用 -P 绑定端口号,使用 dock