在Dockerfile中运行/ usr / sbin / sshd不起作用
在一个Dockerfile中,我想启动ssh守护进程,然后给bash:
from fedora run yum -y install openssh-server openssh-clients openssh run yum clean all run echo "PermitRootLogin yes">>/etc/ssh/sshd_config run ssh-keygen -A run ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa run cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys run /usr/sbin/sshd expose 22 cmd /usr/bin/bash
我创build图像并从中启动一个容器,
$ sudo docker build -t test/openssh . $ sudo docker run -it --rm -P test/openssh
但在容器中,我看到sshd没有运行。 为什么不?
Dockerfile
中的RUN
命令是Dockerfile
在Dockerfile
中设置,安装和/或configuration软件的bash命令。 这个命令将在Docker镜像构build期间运行(并且将结束),任何应该启动守护进程的RUN
命令都将不起作用。 当你启动它时,它们是一些在你的容器中运行各种进程的模式。 其中最常见的就是使用supervisord (在这个官方文档中你可以看到一个使用它来运行ssh守护进程的例子)。
- 运行rake db时出现错误:在Docker中创build
- 通过docker-compose更新一个Container
- 如何从外部世界连接到docker集装箱
- 无法创builddocker群服务
- 如何推动由Docker-composepipe理的Docker容器到Heroku?
- 如何使用JavaScript获取Docker容器的名称?
- MySQL 5.5.44“本机”比dockerized MySQL 5.5.44快32%
- “pythonsetup.py安装”不能从Dockerfile工作,但我可以在容器中,并做同样的..任何指针?
- 如何在Docker中debugging“WSREP:SST失败:1(操作不允许)”与MariaDB Galera集群?