共计 843 个字符,预计需要花费 3 分钟才能阅读完成。
一、创建 entrypoint.sh
echo "root:${ROOT_PASSWORD}" | chpasswd | |
/usr/sbin/sshd -D |
创建 entrypoint.sh 主要是为了 docker run 启动时可以根据环境变量修改 root 密码。
二、创建 dockerfile
FROM ubuntu:20.04 | |
ENV ROOT_PASSWORD "root" | |
COPY entrypoint.sh /entrypoint.sh | |
RUN sed -i "s/archive.ubuntu.com/mirrors.aliyun.com/g" /etc/apt/sources.list && apt update && \ | |
apt-get install -y openssh-server | |
RUN mkdir /var/run/sshd && \ | |
sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config && \ | |
chmod +x /entrypoint.sh | |
ENTRYPOINT ["bash", "-c", "/entrypoint.sh"] |
dockerfile 内容主要是指定了 root 默认密码为 root,安装 openssh-server,然后修改配置文件使 root 可以远程登录,并且将入口文件entrypoint.sh
复制到镜像内。
三、制作和启动
# 制作 | |
docker build -t myssh . | |
# 启动 (如果不指定ROOT_PASSWORD, 默认密码为 root) | |
docker run -d --name myssh -p 222:22 -e ROOT_PASSWORD="123456" myssh | |
# 测试 | |
ssh localhost -p 222 |
四、其他
1、启动 sshd 报错 Missing privilege separation directory: /run/sshd
是因为没有创建 /run/sshd 文件夹。创建镜像时,加上 mkdir /var/run/sshd
即可。
提醒:本文发布于985天前,文中所关联的信息可能已发生改变,请知悉!
AD:【腾讯云服务器大降价】2核4G 222元/3年 1核2G 38元/年
正文完