brg*_*brg 1 openssh docker dockerfile
我有一个奇怪的问题.
我无法ssh到具有IP地址的docker容器172.17.0.61.
我收到以下错误:
$ ssh 172.17.0.61
ssh: connect to host 172.17.0.61 port 22: Connection refused
Run Code Online (Sandbox Code Playgroud)
我Dockerfile确实包含openssh-server安装步骤:
RUN apt-get -y install curl runit openssh-server
Run Code Online (Sandbox Code Playgroud)
并且步骤开始ssh:
RUN service ssh start
Run Code Online (Sandbox Code Playgroud)
可能是什么问题?
当我进入容器使用nsenter并启动ssh服务然后我能够ssh.但是创建容器ssh-server似乎并没有开始.
我该怎么办?
Tho*_*ach 10
构建Dockerfile时,您将创建一个图像.但是,您无法使用已运行的ssh守护程序或任何正在运行的服务来创建映像.首先,如果您从图像中创建一个正在运行的容器,则可以在其中启动服务.例如,通过将开始指令附加到docker run命令:
sudo docker run -d mysshserver service ssh start
Run Code Online (Sandbox Code Playgroud)
您可以使用CMD为docker镜像定义默认命令.这是一个Dockerfile示例:
FROM ubuntu:14.04.1
MAINTAINER Thomas Steinbach
EXPOSE 22
RUN apt-get install -y openssh-server
CMD service ssh start && while true; do sleep 3000; done
Run Code Online (Sandbox Code Playgroud)
您可以使用以下两个命令构建运行此映像:
sudo docker build -t sshtest .
sudo docker run -d -P --name ssht sshtest
Run Code Online (Sandbox Code Playgroud)
现在您可以通过ssh连接到此容器.请注意,在示例Dockerfile中,没有创建用户和登录.此图像仅作为示例,您可以启动与它的ssh连接,但不能登录.
| 归档时间: |
|
| 查看次数: |
4112 次 |
| 最近记录: |