SSH直接进入docker集装箱
我有一些docker工人,现在我想用ssh访问一个。 那工作我通过ssh连接到docker集装箱。
但是现在我遇到了问题,我不知道用哪个用户可以访问这个容器?
我已经用主机上的两个用户(web和root)尝试过了。 但他们不工作。 做什么知道?
您可以直接放入正在运行的容器中:
$ docker exec -it myContainer /bin/bash
你可以在没有运行的容器上获得一个shell:
$ docker run -it myContainer /bin/bash
这是在容器上获取shell的首选方法。 运行SSH服务器被认为不是一个好的做法,虽然有一些用例,但应尽可能避免。
如果你想直接连接到一个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"]
然后使用docker运行-p和-d标志。 例:
docker run -p 8022:22 -d your-docker-image
你可以连接:
ssh root@your-host -p8022
更强大的解决scheme是将nsenter拉到你的服务器,然后摆动并运行docker-enter
从那里docker-enter
。 这样你就不需要在容器中运行多个进程(ssh服务器+任何容器),或者担心ssh用户的额外开销(更不用说安全问题了)。
- 在docker(Debian wheezy)中安装pure-ftpd,错误421
- 我如何才能获得与AWS / Debian合作的cadvisor(Docker)?
- 如何在debian wheezy docker镜像上安装pgrep / pkill
- 如何通过Terraform设置Nomad
- 更改了docker映像安装目录,但提示错误“无法打开文件夹…没有应用程序注册为处理此文件”错误
- 在Debian主机上获取镜像时,Docker超时
- docker不能启动容器… cpu.shares:没有这样的文件或目录
- 如何在没有cgroup的情况下安装docker
- docker – 使用Python的图像,添加非免费的Debian回购?