一.构建SSH镜像
##开启ip转发功能
vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
sysctl -p
systemctl restart docker
1.cd /opt
mkdir sshd
2.vim Dockerfile
FROM centos:7
MAINTAINER this is sshd image <2022-3-9-14:19-zqh>
RUN yum install -y openssh* net-tools lsof telnet passwd
RUN echo 'abc123' | passwd --stdin root
RUN sed -i 's/UsePAM yes/UsePAM no/g' /etc/ssh/sshd_config
RUN sed -i -r '/^session\s+required\s+pam_loginuid.so/ s/^/#/' /etc/pam.d/sshd
RUN ssh-keygen -t rsa -A
RUN mkdir -p /root/.ssh && chown root.root /root && chown 700 /root/.ssh
EXPOSE 22
CMD ["/usr/sbin/sshd","-D"]
3.生成镜像
docker build -t sshd:centos .
4.启动容器并修改root密码
docker run -d -P sshd:centos
docker ps -a
ssh localhost -p 49153
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6s3IFrv5-1647703370730)(C:\Users\zhuquanhao\Desktop\截图命令集合\linux\Docker\Docker案例\1.bmp)]](https://i-blog.csdnimg.cn/blog_migrate/04f9b1ba4e94e0ab6f8fa1f6dfbd87fe.png)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RLeySeoa-1647703370731)(C:\Users\zhuquanhao\Desktop\截图命令集合\linux\Docker\Docker案例\2.bmp)]](https://i-blog.csdnimg.cn/blog_migrate/5f4e37d3b94cba0907345092bdb6e15c.png)
二.构建systemctl 镜像
1. mkdir /opt/systemctl
cd systemctl/
vim Dockerfile
FROM sshd:centos
MAINTAINER this is systemctl image <2022-3-9-zqh>
ENV container docker
RUN (cd /lib/systemd/system/sysinit.target.wants/; for i in *; do [ $i == systemd-tmpfiles-setup.service ] || rm -f $i; done); \
rm -f /lib/systemd/system/multi-user.target.wants/*; \
rm -f /etc/systemd/system/*.wants/*; \
rm -f /lib/systemd/system/local-fs.target.wants/*; \
rm -f /lib/systemd/system/sockets.target.wants/*udev*; \
rm -f /lib/systemd/system/sockets.target.wants/*initctl*; \
rm -f /lib/systemd/system/basic.target.wants/*;\
rm -f /lib/systemd/system/anaconda.target.wants/*;
VOLUME [ "/sys/fs/cgroup" ]
CMD ["/usr/sbin/init"]
2.生成镜像
docker build -t systemctl:centos .
3.启动容器,并挂载宿主机目录挂载到容器中,进行初始化
docker run --privileged -d -P -v /sys/fs/cgroup:/sys/fs/cgroup:ro systemctl:sshd init
4.登入容器
docker exec -it 84eff8690073 bash
5.启动sshd
systemctl start sshd