在使用systemctl start docker启动失败时,使用systemctl status docker.service

本文记录了一次Docker服务启动失败的问题排查过程及解决方案。主要原因是由于SELinux不支持overlay2 graph driver导致。提供了两种解决思路:升级内核或禁用SELinux。最终通过修改配置文件/etc/sysconfig/docker,设置–selinux-enabled=false来解决问题。

在使用systemctl start docker启动失败时,使用systemctl status docker.service.报告如下:

root@localhost ~]# systemctl status docker.service
● docker.service - Docker Application Container Engine
   Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled;
 vendor preset: disabled)
   Active: failed (Result: exit-code) since Wed 2018-07-25 00:24:56 
EDT; 2min 4s ago
     Docs: http://docs.docker.com
 Main PID: 2600 (code=exited, status=1/FAILURE)

Jul 25 00:24:54 localhost.localdomain systemd[1]: Starting Docker...
Jul 25 00:24:54 localhost.localdomain dockerd-current[2600]: time...
Jul 25 00:24:54 localhost.localdomain dockerd-current[2600]: time...
Jul 25 00:24:55 localhost.localdomain dockerd-current[2600]: time...
Jul 25 00:24:56 localhost.localdomain dockerd-current[2600]: Erro...
Jul 25 00:24:56 localhost.localdomain systemd[1]: docker.service:...
Jul 25 00:24:56 localhost.localdomain systemd[1]: Failed to start...
Jul 25 00:24:56 localhost.localdomain systemd[1]: Unit docker.ser...
Jul 25 00:24:56 localhost.localdomain systemd[1]: docker.service ...
Hint: Some lines were ellipsized, use -l to show in full.

查资料得知:这里是linux的内核中的SELinux不支持 overlay2 graph driver ,解决方法有两个,要么启动一个新内核,要么就在docker里禁用selinux,–selinux-enabled=false

vi /etc/sysconfig/docker

然后systemctl start docker,问题解决

`Redirecting to /bin/systemctl start docker.service` 是系统在使用 `service` 命令启动 Docker ,自动将其重定向到 `systemctl` 的提示信息。这种重定向是正常的,通常不会导致启动失败。如果在该提示之后出现错误,说明 Docker 服务未能正常启动,需要进一步排查原因。 ### 检查 Docker 服务状态 可以使用以下命令查看 Docker 服务的状态,以获取更详细的错误信息: ```bash systemctl status docker.service ``` 该命令会显示服务是否处于激活状态、最后一次启动失败的原因等关键信息。如果提示 `Job for docker.service failed because the control process exited with error code`,则说明 Docker 服务启动过程中出现了问题,需要结合日志进一步分析。 ### 查看系统日志以定位错误 可以使用以下命令查看详细的日志信息: ```bash journalctl -xe ``` 此命令会显示系统日志,包括 Docker 服务启动失败的完整错误信息。例如,可能是由于配置文件错误、端口冲突、存储驱动配置不当或权限问题导致的启动失败。 ### 修改 Docker 的存储驱动配置 如果发现 Docker 启动失败与容器运行配置有关,可以尝试修改 Docker 的存储驱动为 `systemd`,因为 `kubelet` 默认使用 `systemd` 作为 cgroup 驱动,而 Docker 默认使用 `cgroupfs`,两者必须一致才能正常运行: ```bash sudo sed -i 's/"exec-opts": \["native.cgroupdriver=cgroupfs"\]/"exec-opts": ["native.cgroupdriver=systemd"]/g' /etc/docker/daemon.json ``` 然后刷新 `systemd` 并重启 Docker 服务: ```bash systemctl daemon-reload systemctl restart docker ``` 此操作可以解决由于 cgroup 驱动不一致导致的启动失败问题[^4]。 ### 设置 Docker 开机自启动 确保 Docker 服务已设置为开机自启动,以避免每次重启后手动启动服务: ```bash systemctl enable docker ``` 此命令会将 Docker 服务添加到系统启动项中,确保其在系统重启后自动运行。 ###
评论 8
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值