一、基于密码登录的创建
1、由于centos7基础镜像中是没有安装openssh-server的,所以无法进行远程连接。需要安装openssh-server和创建密钥文件
```bash
# 拉取基础镜像
FROM centos:centos7.9.2009
# 打标签
LABEL authour="whp" email="xxxxxxx" version="v1.0"
# 更换yum源并且安装应用并更改时区
RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \
yum install -y wget && \
mkdir /etc/yum.repos.d/bak && mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak && \
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo && \
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo && \
yum clean all && yum makecache && \
yum -y install openssh-server openssh openssl passwd
# 创建sshd的公钥和私钥文件
RUN ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key -N '' && \
ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key -N '' && \
ssh-keygen -t ed25519 -f /etc/ssh/ssh_host_ed25519_key -N '' && \
echo '123456'|passwd root --stdin
# 暴露端口22
EXPOSE 22
# 启动进程
CMD ["/usr/sbin/sshd","-D"]
2、启动创建镜像
```bash
docker build -t centos_sshd:v1.0 .
3、启动镜像并远程测试
# 后台运行
docker run -d centos_ssh:v2.0
# 查看容器ip
docker inspect b0258bf50617
# 远程连接
ssh 172.17.0.7
root@172.17.0.7's password:
4、进入到容器查看启动的进程
# docker exec -it b0258bf50617 /bin/bash
[root@b0258bf50617 /]# ps -aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.4 112936 4300 ? Ss 09:20 0:00 /usr/sbin/sshd -D
root 25 0.5 0.1 11828 1892 pts/0 Ss 09:26 0:00 /bin/bash
root 39 0.0 0.1 51732 1700 pts/0 R+ 09:26 0:00 ps -aux
到此sshd运行成功