启动 docker 守护进程监听特定端口的正确方法

2023-12-23

我是 Docker 新手,希望以守护进程模式启动它,监听特定的 IP 地址和端口。在里面文档 https://docs.docker.com/reference/commandline/daemon/据说这可以通过写来完成sudo /usr/bin/docker daemon -H 0.0.0.0:5555。然后它说我可以使用此命令列出正在运行的容器docker ps。如果我尝试这样做,我会收到以下消息:

Get http:///var/run/docker.sock/v1.20/containers/json?all=1 http:///var/run/docker.sock/v1.20/containers/json?all=1:拨打unix /var/run/docker.sock:没有这样的文件或目录。

  • 您是否尝试在没有 TLS 的情况下连接到启用 TLS 的守护进程?
  • 你的 docker 守护进程启动并运行了吗?

我无法与它互动。我已经寻找解决方案但没有运气。有什么建议么?

附:我怎样才能在后台运行这个守护进程?我尝试附加一个 n 但我一直停留在输出上,直到按 ctrl+c。

提前致谢


在 Ubuntu (16.04 LTS) 上使用 docker-ce (17.03.1~ce-0~ubuntu-xenial)执行以下操作以使 docker 侦听 TCP 端口而不是套接字。

添加文件/etc/systemd/system/docker.service.d/override.conf包含以下内容:

[Service]
ExecStart=
ExecStart=/usr/bin/dockerd

添加文件/etc/docker/daemon.json包含以下内容

{
    "hosts": [
        "tcp://127.0.0.1:2375"
    ] 
}

Reload (systemctl daemon-reload)并重新启动(systemctl restart docker.service)码头工人。

以供参考:https://github.com/moby/moby/issues/25471 https://github.com/moby/moby/issues/25471

EDIT:

小心,所以恶魔只会监听该网络端口,而忽略本地请求。 要使 docker 同时监听远程和本地,请编辑 daemon.json 但保留标准 unix 套接字

{
        "hosts" : [
                "unix:///var/run/docker.sock",
                "tcp://<docker-host-ip-or-localhost>:2375"
        ]
}

Docker 守护进程连接选项docs https://docs.docker.com/engine/reference/commandline/dockerd/#examples

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

启动 docker 守护进程监听特定端口的正确方法 的相关文章

随机推荐