跳至主要內容

基于Centos:7 的docker 镜像制作支持ssh 的镜像,Dockerfile 配置文件内容如下

Change Lee...小于 1 分钟容器DockerDockerfile

基于Centos:7 的docker 镜像制作支持ssh 的镜像,Dockerfile 配置文件内容如下

FROM centos:7

MAINTAINER change_lee

RUN yum install -y openssl openssl-devel net-tools gcc gcc-devel

ENV PATH=$PATH:/usr/local/sshd/sbin

ADD openssh-8.1p1.tar.gz /root/

RUN cd /root ;\
mv openssh-8.1p1 openssh

RUN cd /root/openssh ; \
useradd sshd -s /sbin/nologin ;\
./configure --prefix=/usr/local/sshd ; \
make ; \
make install

ENV PASSWD="admin"

RUN rm -rf /root/openssh ; \
yum clean all ;\
mkdir -p /root/.ssh ;\
sed -i /PermitRootLogin/a"PermitRootLogin yes" /usr/local/sshd/etc/sshd_config ;\
sed -i /"PermitRootLogin yes"/a"PermitEmptyPasswords yes" /usr/local/sshd/etc/sshd_config ;

WORKDIR /root

EXPOSE 22

ENTRYPOINT echo $PASSWD | passwd root --stdin ;\
echo "PassWord is : $PASSWD" ; \
ifconfig eth0  | grep inet ; \
/usr/local/sshd/sbin/sshd -D -f /usr/local/sshd/etc/sshd_config
CMD bash

文件中涉及的openssh8.1p1 版本下载地址:
https://cloudflare.cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/open in new window
root 默认 密码为 admin ,如果需要指定,在docker run 的时候使用 -e PASSWD="new passwd" 指定,如果不知道密码,可以使用docker logs 容器ID 可以查看密码

Dockerfile 配置ssh 是为了使用方便,所以在docker run 的时候建议使用 -p/-P 暴露端口,使用 --name /--hostname指定容器名和主机名(-h 也可以指定主机名)

上次编辑于:
贡献者: change,lichangyangccm@163.com
评论
  • 按正序
  • 按倒序
  • 按热度
Powered by Waline v3.1.3