SSH直接进入docker容器

Fel*_*lix 10 ssh debian docker

我有一些docker conatiners,现在我想用ssh访问一个.多数民众赞成工作我通过ssh连接到docker容器.

但是现在我遇到了一个问题,我不知道我可以访问哪个用户进入这个容器?

我和主机上的两个用户(web和root)都试过了.但它们不起作用.该怎么办?

L0j*_*j1k 11

您可以直接放入正在运行的容器中:

$ docker exec -it myContainer /bin/bash
Run Code Online (Sandbox Code Playgroud)

您可以在未运行的容器上获取​​shell:

$ docker run -it myContainer /bin/bash
Run Code Online (Sandbox Code Playgroud)

这是在容器上获取​​shell的首选方法.运行SSH服务器被认为不是一种好的做法,尽管有一些用例,但应尽可能避免使用.


小智 8

如果要直接连接到Docker容器而不连接到docker主机,则Dockerfile应包含以下内容:

# 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"]
Run Code Online (Sandbox Code Playgroud)

然后使用docker run -p和-d标志.例:

docker run -p 8022:22 -d your-docker-image
Run Code Online (Sandbox Code Playgroud)

您可以连接:

ssh root@your-host -p8022
Run Code Online (Sandbox Code Playgroud)