You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Ubuntu 14.04更新Docker-ce后无法连接Docker守护进程求助

解决Ubuntu 14.04上Docker-ce无法连接daemon的问题

你在Ubuntu 14.04装完docker-ce后碰到的这个daemon连接问题挺常见的,咱们一步步排查解决:

第一步:先确认Docker服务状态与启动日志

首先得搞清楚Docker服务到底有没有正常启动,以及启动时有没有报错:

  • 检查服务当前状态:
    sudo service docker status
    
  • 如果显示服务未运行,直接看启动日志找具体错误:
    sudo tail -n 30 /var/log/upstart/docker.log
    
    日志里的错误信息是定位问题的核心,比如内核版本不够、依赖缺失或者配置不兼容都能在这里找到线索。

第二步:检查内核版本是否达标

Docker-ce对Ubuntu 14.04的内核有最低要求(至少3.10以上,推荐3.13+),先确认你的内核版本:

uname -r

如果版本低于3.10,得先升级内核:

sudo apt-get update
sudo apt-get install linux-image-generic-lts-xenial
sudo reboot

重启后再检查一次内核版本,确保升级成功。

第三步:补全Docker依赖

Ubuntu 14.04默认可能缺少Docker需要的aufs存储驱动依赖,安装它:

sudo apt-get install aufs-tools

安装完成后重启Docker服务:

sudo service docker restart

第四步:验证Docker源是否配置正确

如果之前添加的Docker源是针对更高版本Ubuntu的(比如xenial),会导致安装的docker-ce和14.04不兼容。可以重新配置正确的源:

  1. 先卸载现有docker-ce:
    sudo apt-get remove --purge docker-ce
    sudo rm -rf /etc/apt/sources.list.d/docker.list
    
  2. 添加适配Ubuntu 14.04(代号trusty)的官方源:
    sudo apt-get update
    sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
    sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu trusty stable"
    
  3. 重新安装docker-ce:
    sudo apt-get update
    sudo apt-get install docker-ce
    
  4. 启动服务并检查状态:
    sudo service docker start
    sudo service docker status
    

第五步:手动启动daemon排查配置问题

如果上面的步骤都没解决,试试手动启动dockerd,看实时输出的错误:

sudo dockerd

如果手动启动成功,说明可能是upstart的默认配置有问题。可以创建一个自定义的upstart配置文件:

  1. 创建/etc/init/docker.conf文件:
    sudo nano /etc/init/docker.conf
    
  2. 粘贴以下内容:
    description "Docker daemon"
    
    start on filesystem and started networking
    stop on runlevel [!2345]
    
    respawn
    respawn limit 10 5
    
    script
        /usr/bin/dockerd -H fd://
    end script
    
    post-start script
        while [ ! -e /var/run/docker.sock ]; do
            sleep 0.1
        done
    end script
    
  3. 保存退出后重启服务:
    sudo service docker restart
    

做完这些步骤后,再尝试运行docker ps或者sudo docker ps,应该就能正常连接到daemon了。

内容的提问来源于stack exchange,提问作者Alexander Zeitler

火山引擎 最新活动