在一个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
我创建图像并从中启动一个容器,
$ sudo docker build -t test/openssh .
$ sudo docker run -it --rm -P test/openssh
但是在容器中,我看到sshd没有运行。为什么不?
RUN
您的命令Dockerfile
是bash命令,可用于在容器内设置,安装和/或配置软件。该命令将在docker映像构建期间运行(并将结束),并且任何RUN
应该启动守护进程的命令均不起作用。它们是启动容器时在容器内运行各种进程的一些模式。最常见的一种方法是使用超级用户(在此官方文档中,您可以看到一个使用它来运行ssh守护程序的示例)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句