docker1.13.1 启动失败 解决

本文介绍了在启动Docker时遇到的错误,即由于SELinux不支持overlay2导致的启动失败。通过修改/etc/sysconfig/docker文件,将OPTIONS参数中的'selinux-enabled=false'设置为false,然后重启Docker,成功解决了问题。

一、启动失败

1.启动docker
[root@localhost ~]# systemctl start docker
Job for docker.service failed because the control process exited with error code. See "systemctl status docker.service" and "journalctl -xe
" for details.

上面表示输入 systemctl status docker.service 查看详细原因

2.查看启动失败原因
[root@localhost ~]# systemctl status docker.service
● docker.service - Docker Application Container Engine
   Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
   Active: failed (Result: exit-code) since Tue 2018-05-29 02:55:27 EDT; 1min 0s ago
     Docs: http://docs.docker.com
  Process: 18936 ExecStart=/usr/bin/dockerd-current --add-runtime docker-runc=/usr/libexec/docker/docker-runc-current --default-runtime=doc
ker-runc --exec-opt native.cgroupdriver=systemd --userland-proxy-path=/usr/libexec/docker/docker-proxy-current --init-path=/usr/libexec/doc
ker/docker-init-current --seccomp-profile=/etc/docker/seccomp.json $OPTIONS $DOCKER_STORAGE_OPTIONS $DOCKER_NETWORK_OPTIONS $ADD_REGISTRY $
BLOCK_REGISTRY $INSECURE_REGISTRY $REGISTRIES (code=exited, status=1/FAILURE)
 Main PID: 18936 (code=exited, status=1/FAILURE)

May 29 02:55:26 localhost.localdomain systemd[1]: Starting Docker Application Container Engine...
May 29 02:55:26 localhost.localdomain dockerd-current[18936]: time="2018-05-29T02:55:26.453246882-04:00" level=warning msg="could n...ound"
May 29 02:55:26 localhost.localdomain dockerd-current[18936]: time="2018-05-29T02:55:26.457979101-04:00" level=info msg="libcontain...8942"
May 29 02:55:27 localhost.localdomain dockerd-current[18936]: time="2018-05-29T02:55:27.477309579-04:00" level=warning msg="overlay2: th...
May 29 02:55:27 localhost.localdomain dockerd-current[18936]: Error starting daemon: SELinux is not supported with the overlay2 gra...alse)
May 29 02:55:27 localhost.localdomain systemd[1]: docker.service: main process exited, code=exited, status=1/FAILURE
May 29 02:55:27 localhost.localdomain systemd[1]: Failed to start Docker Application Container Engine.
May 29 02:55:27 localhost.localdomain systemd[1]: Unit docker.service entered failed state.
May 29 02:55:27 localhost.localdomain systemd[1]: docker.service failed.
Hint: Some lines were ellipsized, use -l to show in full.

3.解决启动失败
 1.cd /etc/sysconfig 进入这个文件夹下,vi docker 打开这个文件
    修改  OPTIONS='--selinux-enabled=false   这个参数即可

 

2.修改完配置文件  保存后 启动docker
启动成功

解决方式来源于此https://blog.youkuaiyun.com/qq_35241080/article/details/80496422?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.control&dist_request_id=&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.control

### Docker守护进程未运行的排查与解决方法 当遇到错误信息“Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?”时,这通常表明Docker守护进程未启动或用户权限不足[^1]。以下是具体的排查步骤和解决方案: #### 1. 检查Docker服务状态 首先确认Docker服务是否正在运行。可以通过以下命令检查: ```bash systemctl status docker ``` 如果服务未运行,则需要启动Docker服务: ```bash systemctl start docker ``` 此外,为了确保Docker在系统重启后自动启动,可以启用服务: ```bash systemctl enable docker ``` 如果上述命令未能解决问题,可能需要进一步检查Docker服务的日志以定位具体原因[^2]。 #### 2. 验证`docker.sock`文件是否存在且正常 Docker通过`/var/run/docker.sock`进行通信。如果该文件缺失或被误删,可能会导致连接失败。可以使用以下命令验证文件是否存在: ```bash ls -l /var/run/docker.sock ``` 如果文件不存在,尝试重启Docker的socket服务以重新生成: ```bash systemctl restart docker.socket ``` 此操作适用于Docker v1.13及以上版本[^5]。 #### 3. 检查用户权限 如果Docker服务已启动但仍然无法连接,可能是当前用户缺少访问Docker守护进程的权限。默认情况下,只有属于`docker`组的用户才能访问Docker。可以通过以下命令将用户添加到`docker`组: ```bash sudo usermod -aG docker $USER ``` 完成后需重新登录以使更改生效。验证用户是否成功加入`docker`组: ```bash groups ``` #### 4. 排查其他潜在问题 - **安装冲突**:如果系统中存在多个Docker版本(例如通过`snap`安装的Docker),可能会导致冲突。建议卸载不必要的版本并重新安装官方推荐的Docker包[^3]。 - **WSL环境下的特殊配置**:在Windows Subsystem for Linux (WSL) 中安装Docker时,需要额外配置以支持Docker守护进程。例如,确保启用了WSL 2,并正确配置了Docker Desktop[^4]。 #### 示例代码 以下是一个简单的脚本,用于检查和启动Docker服务: ```bash #!/bin/bash # 检查Docker服务状态 if ! systemctl is-active --quiet docker; then echo "Docker服务未运行,正在尝试启动..." sudo systemctl start docker if [ $? -ne 0 ]; then echo "启动失败,请检查日志!" exit 1 fi fi # 检查docker.sock文件 if [ ! -S /var/run/docker.sock ]; then echo "/var/run/docker.sock文件缺失,正在尝试修复..." sudo systemctl restart docker.socket fi echo "Docker服务运行正常!" ``` ###
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

追逐路上的小人物

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值