Docker自制镜像-CentOS-systemd

自制docker镜像,centos-systemd

抓下来centos官方的systemd docker镜像

之所以使用官方的镜像,是因为systemd启动时会竞争1 PID,如果直接使用官方的docker image,会直接造成systemd无法使用,因此建议如果要使用systemd一定要使用官方的修改版

这是因为dbus-daemon没能启动。
其实 systemctl 并不是不可以使用。将CMD或者entrypoint设置为 /usr/sbin/init 即可。会自动将dbus等服务启动起来。 然后就可以使用 systemctl 了。

docker中使用systemd管理服务 - CSDN

网上也看到有人有上述的办法,然而官方给出的说法是systemd会抢占PID,因此要使用官方提供的修改版的image。具体两边都有什么差异,晚点再做研究,以及不确定CSDN的做法能否使用,我自己封装的image是实测过可用经过实际测试,两种方法都可以用,但我个人更推荐官方提供的版本,具体内容可以查看我的另外一篇文章:点击这里

我是用如下命令来抓取官方的镜像并进行封装,具体做出的修改在后面

docker run -it -d --privileged -v /sys/fs/cgroup:/sys/fs/cgroup:ro --name centos centos/systemd:latest 
docker commit --change='CMD ["/usr/sbin/sshd", "-D"]' -c "EXPOSE 22" centos centos-systemd:[忘了这里用不用加latest了]
docker tag centos-systemd:latest a980883231/centos-systemd:latest
docker exec -it test /bin/zsh
# 一堆操作,在下面
docker commit centos a980883231/centos-systemd
docker push a980883231/centos-systemd

做出的修改,默认密码为123456,有需要的可以去我的docker hub抓

    1  df -h
    2  cd /etc/dnf/
    3  vi /etc/yum.repos.d/fedora.repo
    4  vi /etc/yum.repos.d/fedora-updates.repo
    5  vi /etc/yum.repos.d/fedora-modular.repo
    6  vi /etc/yum.repos.d/fedora-updates-modular.repo
    7  sudo dnf makecache
    8  dnf install vim screen wget net-tools NetworkManager-tui lrzsz openssh-server
    9  netstat -antp
   10  netstat -antp
   11  netstat -antp
   12  systemctl enable sshd.service
   13  systemctl start sshd.service
   14  service sshd start
   15  mkdir /var/run/sshd
   16  vim /auto_sshd.sh
   17  chmod a+x auto_sshd.sh 
   18  passwd
   19  chpasswd 
   20  echo "root:123456" | chpasswd 
   21  ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key
   22  ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
   23  history