【发布时间】:2021-07-16 19:01:46
【问题描述】:
我在运行带有 SSH 服务的 linux 容器时遇到了很多困难。跳过细节,SSH不是可选的,我必须拥有它。
我安装了 openssh-server:
运行
echo "**** 设置 openssh-server ****" &&
apt-get install -y openssh-server &&
sed -i "s|# PasswordAuthentication yes|PasswordAuthentication yes|g" /etc/ssh/sshd_config &&
mkdir /var/run/sshd
我正在尝试通过以下方式打开服务:
ENTRYPOINT 服务 ssh 重启 && bash
但是它不起作用。我尝试了多种方式来启动它,通过使用 CMD,通过制作一个可以启动服务的脚本,但它不起作用。更糟糕的是,这似乎对其他人有用(pull access denied repository does not exist or may require docker login)
我用作基础的图像是 ubuntu:18.04。但是我切换到 jre/systemd-ubuntu:18.04,因为我认为缺少 systemd 可能会阻止服务运行,但这也不起作用。有什么建议可能是什么问题?
【问题讨论】:
-
你不需要
systemd。您可以在前台运行服务 (-D) 并将调试日志输出到 stderr (-e)。 Here is anubunutu:18.04basedopenssh-serverimage 如果有帮助的话。 -
这似乎没有任何作用。我没有打印任何错误消息,服务仍未运行...
-
不清楚你到底尝试了什么。例如我在生产中使用我的图像,它们工作正常。
-
很酷,你让它工作了。正确,例如如果图像本身不正确,仅设置
ENTRYPOINT(任何ENTRYPOINT)将无法解决任何问题(如果主机密钥丢失或/var/run/sshd不存在,openssh-server将无法启动-I use aVOLUMEto make sure that directory is created )。 -
我的猜测是一开始它没有工作,因此我添加了这个文件但是我有其他改变破坏了图像:)