容器启动后的第一个进程并不是init,不是用init进程初始化系统,所以才会导致系统报错,解决办法是创建容器时加入--privileged参数,修改/bin/bash,RedHat/Centos系统改为/usr/sbin/init,Debian/Ubuntu系统改为/sbin/init



docker run -itd --name web --privileged=true -p 80:80 centos:8 /usr/sbin/init
这样创建的容器就可以正常使用systemctl命令了。