无法使用SSH连接到docker容器

use*_*632 4 linux ssh openssh lxc docker

我是Docker的新手,我从Dockerfile构建了容器,我可以看到容器正在创建并运行,但是我无法使用ssh连接到该容器.

这是我的Dockerfile:

FROM ubuntu:12.04

RUN apt-get update
RUN apt-get install -y apache2 & openssh-server

ENV APACHE_RUN_USER www-data
ENV APACHE_RUN_GROUP www-data
ENV APACHE_LOG_DIR /var/log/apache2

EXPOSE 80
EXPOSE 22

ENTRYPOINT ["/usr/sbin/apache2"]
CMD ["-D", "FOREGROUND"]
Run Code Online (Sandbox Code Playgroud)

然后我跑了这个cmd:

docker build -t="apache2" .
$ docker run -d apache2
Run Code Online (Sandbox Code Playgroud)

当我这样做时docker ps,我可以看到端口已分配,但我无法使用ssh连接到该容器.

$ docker ps

ID                  IMAGE               COMMAND                CREATED              STATUS              PORTS
5765535796f8        apache2:latest      /usr/sbin/apache2 -D   About a minute ago   Up About a minute   49154->80,49155->22
Run Code Online (Sandbox Code Playgroud)

joh*_*sta 6

看起来你的docker文件中有一个拼写错误.线:

RUN apt-get install -y apache2 & openssh-server

应该

RUN apt-get install -y apache2 openssh-server

如果您更改此设置以及添加设置root密码的步骤(如"运行ssh服务指南"中所示),您是否可以将ssh插入正在运行的容器中?

https://docs.docker.com/engine/examples/running_ssh_service/

  • 您需要启动与apache2进程并行的openssh-server.Docker没有init/supervisor,只启动您指定的进程. (4认同)