我正在尝试创建一个包含 openssh 服务器的映像,并在调用运行命令时启动它。我已采取以下步骤:
docker pull ubuntu
docker run -d -it ubuntu bash
apt-get update
apt-get install openssh-server -y
exit
docker ps -a
docker commit <CONTAINER ID> myimg
// tried the following three, same results
docker run -d myimg "/usr/sbin/sshd"
docker run -d myimg /usr/sbin/sshd -D
docker run -d myimg service ssh start
这会运行图像然后立即退出,我正在尝试让服务跟上。我做错了什么?
答案1
搞清楚了。安装 openssh-server 后,必须创建一个目录。
错误:Missing privilege separation directory: /var/run/sshd
docker pull ubuntu
docker run -it ubuntu /bin/bash
apt-get update
apt-get install openssh-server -y
mkdir /var/run/sshd
service ssh stop
exit
docker ps -a
docker commit <CONTAINER ID> myimg
docker run -d -p <PORT>:22 myimg /usr/sbin/sshd -D