Dockerfile配置centos安装sshd服务原创
# Dockerfile配置centos安装sshd服务
# 一、 给真实的centos安装sshd服务的方法如下
登陆centos执行以下命令:
yum install -y openssh-server openssh-clients
sed -i '/^HostKey/'d /etc/ssh/sshd_config
echo 'HostKey /etc/ssh/ssh_host_rsa_key' >> /etc/ssh/sshd_config
echo 'StrictHostKeyChecking no' >> /root/.ssh/config
echo 'UserKnownHostsFile /dev/null' >> /root/.ssh/config
mkdir -p /opt
echo '#!/bin/bash' >> /opt/run.sh
echo '/usr/sbin/sshd -D' >> /opt/run.sh
chmod +x /opt/run.sh
#设置开机启动
systemctl enable sshd
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
# 二、Dockerfile安装配置centos安装sshd服务
# 1. 拉取centos基础镜像
# 也可以自己选择其他版本
docker pull centos:7.7.1908
1
2
2
# 2. 配置Dockerfile
#在目标目录下运行
vi Dockerfile
#填写以下内容
FROM centos:7.7.1908
RUN rm -f /etc/localtime && ln -sv /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo "Asia/Shanghai" > /etc/timezone
RUN export LANG=zh_CN.UTF-8
# 安装sudo
RUN yum -y install sudo ; chmod 640 /etc/sudoers
#更改root用户登录密码
RUN echo 'root:123456' | chpasswd
#安装sshd
RUN yum install -y openssh-server openssh-clients vim net-tools lrzsz rsync nc telnet wget
RUN sed -i '/^HostKey/'d /etc/ssh/sshd_config
RUN echo 'HostKey /etc/ssh/ssh_host_rsa_key' >> /etc/ssh/sshd_config
#声明22端口
EXPOSE 22
#取消add host提示
RUN echo 'StrictHostKeyChecking no' >> /root/.ssh/config
RUN echo 'UserKnownHostsFile /dev/null' >> /root/.ssh/config
#容器运行时启动sshd
RUN mkdir -p /opt
RUN echo '#!/bin/bash' >> /opt/run.sh
RUN echo '/usr/sbin/sshd -D' >> /opt/run.sh
RUN chmod +x /opt/run.sh
CMD ["/opt/run.sh"]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# 3. 根据Dockerfile构建镜像并启动容器
构建镜像
docker build -t centosssh:v1 . --no-cache #构建镜像
1用镜像启动容器并进入bash
docker run -dit --name -p 222:22 centosssh centosssh:v1 #启动容器,宿主机的222端口映射到容器的22端口 docker exec -it centosssh bash #进入容器,root密码是Dockerfile里面设置的123456
1
2测试
#容器里输入看能否执行成功 ssh-keygen -t rsa
1
2利用xshell等终端连接工具连接容器能连接成功证明安装成功