在Dockerfile中运行/usr/sbin/sshd不起作用
在Dockerfile中,我想启动ssh守护进程,然后给bash:在Dockerfile中运行/usr/sbin/sshd不起作用,docker,Docker,在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 ca
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
我创建图像并从中启动一个容器
$ sudo docker build -t test/openssh .
$ sudo docker run -it --rm -P test/openssh
但在容器中,我看到sshd没有运行。为什么不呢?您的
Dockerfile
中的运行
命令是用于在容器中设置、安装和/或配置软件的bash命令。此命令将在docker映像构建过程中运行(并将结束),任何假定启动守护进程的run
命令都将不起作用。它们是启动容器时在容器内运行各种进程的一些模式。最常见的一种是使用(在本官方文档中,您可以看到一个使用它运行ssh守护程序的示例)。它可以正常工作。但是现在我使用systemd而不是supervisord。@Javier Cortejoso:请您将嵌入的URL更新为supervisord