1. 创建D:/docker/centos_ssh/Dockerfile
mkdir D:/docker/build/centos_ssh
cd .>D:/docker/build/centos_ssh/Dockerfile
2. 编辑Dockerfile文件
# 选择一个已有的os镜像作为基础
FROM centos:7
# 镜像的作者
MAINTAINER xxx "xxx@gmail.com"
# 安装openssh-server和sudo软件包,并且将sshd的UsePAM参数设置成no
RUN yum install -y openssh-server sudo
RUN sed -i 's/UsePAM yes/UsePAM no/g' /etc/ssh/sshd_config
# 下面这两句比较特殊,在centos7上必须要有,否则创建出来的容器sshd不能登录
RUN ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
RUN ssh-keygen -t rsa -f /etc/ssh/ssh_host_ecdsa_key
RUN ssh-keygen -t rsa -f /etc/ssh/ssh_host_ed25519_key
# 指定root密码
RUN /bin/echo 'root:123456'|chpasswd
RUN /bin/sed -i 's/.*session.*required.*pam_loginuid.so.*/session optional pam_loginuid.so/g' /etc/pam.d/sshd
RUN /bin/echo -e "LANG=\"en_US.UTF-8\"" > /etc/default/local
# 启动sshd服务并且暴露22端口
RUN mkdir /var/run/sshd
EXPOSE 22
CMD ["/usr/sbin/sshd", "-D"]
如果你创建容器需要提权--privileged=true,可以修改entrypoint,在dockerfile文件配置中添加
ENTRYPOINT ["/usr/sbin/init"]
默认entrypoint应该是/bin/bash
3. 构建镜像
在Dockerfile当前目录执行下面命令,开始构建镜像。注意最后面的点不要忘了,表明是读取当前目录的Dockerfile文件
docker build -t xxx/centos_ssh:7 .