如何从另一个容器访问在Docker容器中运行的Mopidy

时间:2018-07-03 18:15:28

标签: docker alpine mpd portainer mopidy

首先,与通过控制台进行操作相比,我更熟悉通过Portainer运行Docker。

我在做什么:

当前,我正在通过容器运行Mopidy,其他计算机通过默认Mopidy端口正在访问该容器。在另一个容器中,我正在运行一个使用Limbo存储库作为基础的Slack机器人。它们都在Alpine Linux上运行。

我需要什么:

我想做的是让我的Slack僵尸程序能够调用MPC命令,例如使音量静音等。这就是我遇到的问题。什么是最好的工作方式

我尝试过的事情:

我可以通过ssh进入另一个容器来发送命令,但是这样做并没有意义,因为它们都在同一台服务器上运行。

1 个答案:

答案 0 :(得分:0)

连接一堆容器的最佳方法是使用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容器中的任何应用程序都可以通过使用service1地址来访问service2:port上的某些端口。