Dockerfile 基于centos7镜像搭建sshd服务与systemctl命令

SSH Dockerfile

#Dockerfile 配置
FROM centos:7
MAINTAINER This is centos:ssh
#安装ssh和其他服务软件包
RUN  yum update && yum install -y openssh* net-tools lsof telnet passwd
#修改root用户密码
RUN echo "123456" | passwd --stdin root
#设置不使用ssh服务端的pam模块
RUN sed -i 's/UsePAM yes/UsePAM no/g' /etc/ssh/sshd_config
#创建非对称秘钥
RUN ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
#关闭pam.d的ssh会话模块
RUN sed -i '/^session\s\+required\s\+pam_loginuid.so/s/^ /#/' /etc/pam.d/sshd
#创建ssh工作目录并设置权限
RUN mkdir -p /root/.ssh && chown root.root /root && chmod 700 /root/.ssh
#暴露端口
EXPOSE 22
#开启sshd服务
CMD ["/usr/sbin/sshd","-D"]
#创建容器
docker build -t centos:ssh .
#运行容器
docker run  -d -P centos:ssh
#测试,输入密码即可
ssh localhost -p 32768

在这里插入图片描述

在这里插入图片描述

Systemctl Dockerfile

#基于sshd服务搭建systemctl命令
FROM centos:ssh
#设置变量 
ENV container docker
#遍历进入的目录进行匹配systemd-tmpfiles-setup.service,然后进行删除操作
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/*;
#创建卷,便于挂载到host
VOLUME ["/sys/fs/cgroup"]
#初始化
CMD ["/usr/sbin/init"]
#创建容器
docker build -t centos:systemctl .
#运行容器(--privileged 让容器内的root拥有真正的root权限)
docker run --privileged -it -v /sys/fs/cgroup:/sys/fs/cgroup:ro centos:systemctl /sbin/init
#在另一个窗口打开测试
docker exec -it 606e899db931 bash
systemctl status sshd

在这里插入图片描述

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值