黑帽联盟

 找回密码
 会员注册
查看: 1381|回复: 0
打印 上一主题 下一主题

[基础服务] 修改docker.daemon文件后启动失败

[复制链接]

895

主题

38

听众

3323

积分

管理员

Rank: 9Rank: 9Rank: 9

  • TA的每日心情
    无聊
    5 天前
  • 签到天数: 1644 天

    [LV.Master]伴坛终老

    在 docker 配置文件中设置
    docker 1.12 版本之后, 建议在 docker 的 js 配置文件中配置, 路径为 /etc/docker/daemon.json 默认没有这个文件, 可以手动创建此文件, docker 启动时默认会读取此配置文件
    > vim /etc/docker/daemon.json

    {

        "hosts": [

            "tcp://0.0.0.0:2375",

            "unix:///var/run/docker.sock"

        ]

    }
    unix:///var/run/docker.sock注意上面?一定要写上本地的 socket 位置, 不然无法使用本地的 CLI 控制 docker

    修改完js配置文件后, 重启 docker 服务, 出现了如下报错
    > systemctl restart docker.service

    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

    ● docker.service - Docker Application Container Engine

       Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)

       Active: failed (Result: exit-code) since Mon 2017-02-06 12:16:57 CST; 13s ago

         Docs: https://docs.docker.com

      Process: 21952 ExecStart=/usr/bin/dockerd -H fd:// (code=exited, status=1/FAILURE)

    Main PID: 21952 (code=exited, status=1/FAILURE)



    Feb 06 12:16:57 xsl systemd[1]: Starting Docker Application Container Engine...

    Feb 06 12:16:57 xsl dockerd[21952]: unable to configure the Docker daemon with file /etc/docker/daemon.json: the following directives are specified both as a flag and in the configuration file: hosts: (from flag: [fd://], from file: [tcp://0.0.0.0:2375, unix:///var/run/docker.socket])

    Feb 06 12:16:57 xsl systemd[1]: docker.service: Main process exited, code=exited, status=1/FAILURE

    Feb 06 12:16:57 xsl systemd[1]: Failed to start Docker Application Container Engine.

    Feb 06 12:16:57 xsl systemd[1]: docker.service: Unit entered failed state.

    Feb 06 12:16:57 xsl systemd[1]: docker.service: Failed with result 'exit-code'.
    从上面?的报错信息中可以判断出, 是因为 docker 的 socket 配置出现了冲突, 接下来查看 docker 的启动入口文件
    > vim /lib/systemd/system/docker.service # Ubuntu的路径; CentOS 的路径为: /usr/lib/systemd/system/docker.service

    # ...省略

    # 关键行

    ExecStart=/usr/bin/dockerd -H fd://

    # ...省略
    从上面可以看出, 在 docker 的启动入口文件中配置了 host 相关的信息, 而在 docker 的配置文件中也配置了 host 的信息, 所以发生了冲突. 解决办法, 建议将 docker 启动入口文件中的 -H fd:// 删除, 再重启 docker 服务即可


    帖子永久地址: 

    黑帽联盟 - 论坛版权1、本主题所有言论和图片纯属会员个人意见,与本论坛立场无关
    2、本站所有主题由该帖子作者发表,该帖子作者与黑帽联盟享有帖子相关版权
    3、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和黑帽联盟的同意
    4、帖子作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任
    5、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
    6、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
    7、黑帽联盟管理员和版主有权不事先通知发贴者而删除本文

    勿忘初心,方得始终!
    您需要登录后才可以回帖 登录 | 会员注册

    发布主题 !fastreply! 收藏帖子 返回列表 搜索
    回顶部