Golang 的 Docker SDK 无法连接到覆盖网络内的守护进程

我有一个 docker swarm,以及一个位于该 swarm 覆盖网络内的容器。该容器有一个用 golang 编写的应用程序,它通过创建一个容器并启动它来与 Docker API 交互。当我在主机上运行我的 golang 应用程序时,一切都运行得很完美,它可以毫无问题地创建和运行容器。但是,当我将应用程序放入容器并在我的覆盖网络中运行时,它不再能够访问 API。

我假设这与网络有关,但我的项目的想法是有多个服务,每个服务都有自己的网络,可以创建、启动和删除他们认为合适的容器。不幸的是,目前不能在覆盖网络之外的应用程序中运行 SDK。

错误:Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?


冉冉说
浏览 84回答 1
1回答

炎炎设计

您的应用正在尝试访问 Docker 套接字,但默认情况下在容器中无法访问。您可以从主机将其安装为卷: -v /var/run/docker.sock:/var/run/docker.sock
打开App,查看更多内容
随时随地看视频慕课网APP