首先,与通过控制台进行操作相比,我更熟悉通过Portainer运行Docker。
当前,我正在通过容器运行Mopidy,其他计算机通过默认Mopidy端口正在访问该容器。在另一个容器中,我正在运行一个使用Limbo存储库作为基础的Slack机器人。它们都在Alpine Linux上运行。
我想做的是让我的Slack僵尸程序能够调用MPC命令,例如使音量静音等。这就是我遇到的问题。什么是最好的工作方式
我可以通过ssh进入另一个容器来发送命令,但是这样做并没有意义,因为它们都在同一台服务器上运行。
答案 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
上的某些端口。