WSL2 Centos7 Docker服务启动失败
💡 一、错误1
1.启动报的第一个错 Docker CentOS Failed to get D-Bus connection: Operation not permitted,解决方式就是更换systemctl 文件,将原文件备份
1 | sudo mv /usr/bin/systemctl /usr/bin/systemctl.bak |
2.然后下载文件。地址如下:
https://raw.githubusercontent.com/gdraheim/docker-systemctl-replacement/master/files/docker/systemctl.py
(访问不了就用下面这个镜像的)
https://raw.gitmirror.com/gdraheim/docker-systemctl-replacement/master/files/docker/systemctl.py
1 | sudo curl -L -o /usr/bin/systemctl https://raw.gitmirror.com/gdraheim/docker-systemctl-replacement/master/files/docker/systemctl.py |
3.然后重新给他执行权限
1 | chmod +x /usr/bin/systemctl |
💡 二、错误2
1.看状态不行,就去编辑,然后就可以了
1 | vi /usr/lib/systemd/system/docker.service |
1 | # ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock |
💡 三、成功
📚 总结
先来了解下systemd是什么东东?它并不是一个命令,而是一组命令,涉及到系统管理的各个方面。根据Linux惯例,字母d是守护进程 (daemon) 的缩写,systemd这个名字的含义就是要守护整个系统。init和systemd都是Linux的守护进程, 但后者功能更强大,已取代init (initd的PID是0) 成为Linux系统的第一个进程 (systemd的PID是1)。
- systemctl是systemd的主命令,用于管理系统。除此之外,还有hostnamectl(查看当前主机信息)、timedatectl(查看当前时区设置)、loginctl(查看当前登录的用户)等命令。
- 为什么CentOS在WSL里会出现上述错误呢?想必你也猜到一半了,没错,就是systemd没有启用引起的(WSL2现已支持)。Ubuntu发行版默认安装已启用systemd,而其它Linux发行版上默认还是init,需要手动启用才行。可以通过以下命令来查看:
ps --no-headers -o comm 1
💬 讨论
欢迎在评论区讨论:
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 茗囧小栈!
评论
WalineLivere









