【问题标题】:can't restart docker after resetting the docker socker using docker -H tcp://0.0.0.0:2375使用 docker -H tcp://0.0.0.0:2375 重置 docker socker 后无法重新启动 docker
【发布时间】:2015-01-24 18:42:44
【问题描述】:

我想在一个端口上打开 docker,所以我使用了这个命令:

service docker stop
docker -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock -d &  

INFO[0000] +job init_networkdriver()                    
INFO[0000] Listening for HTTP on tcp (0.0.0.0:2375)     
INFO[0000] /!\ DON'T BIND ON ANOTHER IP ADDRESS THAN 127.0.0.1 IF YOU DON'T KNOW WHAT YOU'RE DOING /!\ 
INFO[0000] Listening for HTTP on unix (/var/run/docker.sock) 
INFO[0000] -job init_networkdriver() = OK (0)           
INFO[0000] Loading containers: start.                   
................
INFO[0000] Loading containers: done.                    
INFO[0000] docker daemon: 1.4.1 5bc2ff8; execdriver: native-0.2; graphdriver: aufs 
INFO[0000] +job acceptconnections()                     
INFO[0000] -job acceptconnections() = OK (0)  


service docker start

第一次工作,端口从2375开放。

但是现在使用该命令打开docker上的2375端口后,docker无法再次使用service docker start打开,docker一直处于停止状态。

我用netstat -pna | 2375,没有节目收听2375

任何人都知道为什么我无法重新启动 docker


更新

我按照建议更新了 /etc/default/docker 配置,这里是更新。

DOCKER_OPTS="--dns 8.8.8.8 --dns 8.8.4.4 -H :2375"

然后我通过 service docker restart 重新启动 docker,它似乎正在工作,因为 service docker status 显示正在运行,我认为它现在应该生效。但是当我使用docker images & docker ps -a时,它显示了

FATA[0000] 获取http:///var/run/docker.sock/v1.16/images/json:拨号 unix /var/run/docker.sock:没有这样的文件或目录。你在试吗 连接到没有 TLS 的启用 TLS 的守护进程?

当我返回 docker 配置时,删除 DOCKER_OPTS 中的“-H:2375”部分,重新​​启动 docker,它再次运行良好。任何想法

【问题讨论】:

    标签: docker


    【解决方案1】:

    您正在启动 docker 两次。第一次使用您的自定义端口,第二次通过service 命令。为了将此自定义端口放入您的运行配置中,您需要设置DOCKER_OPTS 环境变量以包含-H tcp://0.0.0.0:2375(或简称-H :2375)。 Here 是一个 Github 问题的链接,它为您提供了一些永久设置此环境变量的线索。在 CentOS 上,编辑/etc/sysconfig/docker 并将您的自定义端口信息添加到那里的DOCKER_OPTS。在 Ubuntu 上,如链接中所述,您可以编辑 /etc/default/docker 并将正确的信息添加到那里的环境变量中。这样,当您service docker start 时,docker 应该保留您的自定义端口配置。在此更改之后,您可以删除自定义 docker ... -d & 命令并坚持使用 service docker start 将其作为服务正常启动。

    【讨论】:

    • 谢谢,我试过了。但是在命令之后,仍然无法重新启动docker。
    • 哦。我认为这里发生的事情是您正在运行docker -d,然后使用service docker start 再次启动它。尝试省略最后一个命令,然后执行 netstat -tpal 以验证您是否在指定的端口上运行 docker 守护进程。
    • 是的,你是对的,因为我输入了 docker -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock -d & ,然后使用了 netstat -录音 | grep ":2375 " 检查2375端口,现在2375上有docker进程。所以现在我该怎么办,我的目的只是要有一个在 2375 上开放端口的 docker
    • 我已经用正确的信息更新了我的答案,以使这个自定义端口永久化。
    • 尝试使用像 -H tcp://0.0.0.0:2375 这样的显式变量运行它,您可能还想包含您的 -H unix:///var/run/docker.sock
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-10-05
    • 2018-12-16
    • 2018-10-04
    • 2018-05-16
    • 1970-01-01
    • 1970-01-01
    • 2015-03-08
    相关资源
    最近更新 更多