如何从另一个容器访问 Docker 容器中的 Mopidy 运行
How do I access Mopidy running in Docker container from another container
首先,我通过 Portainer 运行 Docker 比通过控制台更熟悉。
我在做什么:
目前,我 运行 Mopidy 通过一个容器,它被其他机器通过默认的 Mopidy 端口访问。在另一个容器中,我是 运行 一个使用 Limbo 存储库作为基础的 Slack 机器人。他们都是 运行 在 Alpine Linux.
我需要什么:
我想要做的是让我的 Slack 机器人能够调用 MPC 命令,例如将音量静音等。这就是我卡住的地方。最好的工作方式是什么
我尝试过的:
我可以通过 ssh 进入另一个容器来发送命令,但是这样做没有意义,因为它们 运行 在同一台服务器机器上。
连接一堆容器的最佳方法是使用 docker-compose.yml
文件定义一个服务堆栈,然后使用 docker-compose up
启动所有这些容器。这样,所有容器都将通过单个用户定义的 bridge network 连接,这将使它们的所有端口都可以相互访问,而无需您明确发布它们。它还将允许容器通过 DNS 解析通过服务名称相互发现。
docker-compose.yml
示例:
version: "3"
services:
service1:
image: image1
ports:
# the following only necessary to access port from host machine
- "host_port:container_port"
service2:
image: image2
在上面的示例中,service2
容器中的任何应用程序都可以通过使用 service2:port
地址到达 service1
上的某个端口。
首先,我通过 Portainer 运行 Docker 比通过控制台更熟悉。
我在做什么:
目前,我 运行 Mopidy 通过一个容器,它被其他机器通过默认的 Mopidy 端口访问。在另一个容器中,我是 运行 一个使用 Limbo 存储库作为基础的 Slack 机器人。他们都是 运行 在 Alpine Linux.
我需要什么:
我想要做的是让我的 Slack 机器人能够调用 MPC 命令,例如将音量静音等。这就是我卡住的地方。最好的工作方式是什么
我尝试过的:
我可以通过 ssh 进入另一个容器来发送命令,但是这样做没有意义,因为它们 运行 在同一台服务器机器上。
连接一堆容器的最佳方法是使用 docker-compose.yml
文件定义一个服务堆栈,然后使用 docker-compose up
启动所有这些容器。这样,所有容器都将通过单个用户定义的 bridge network 连接,这将使它们的所有端口都可以相互访问,而无需您明确发布它们。它还将允许容器通过 DNS 解析通过服务名称相互发现。
docker-compose.yml
示例:
version: "3"
services:
service1:
image: image1
ports:
# the following only necessary to access port from host machine
- "host_port:container_port"
service2:
image: image2
在上面的示例中,service2
容器中的任何应用程序都可以通过使用 service2:port
地址到达 service1
上的某个端口。