【发布时间】:2017-03-21 15:20:52
【问题描述】:
我目前正在做一个项目,我将重新制作一个现有项目以在 docker 容器中使用。 我有 3 个不同的容器:
- 在端口 3001 上打开 socket.io 连接并在端口 3000 上提供网页(也连接到该 socket.io 服务器)的 nodejs 服务器
- nodejs 后端所需的 MySQL 数据库
- 一个通过 socket.io 向服务器发送数据的小应用程序
现在我正在尝试链接这些容器,但我不确定我是否正确理解了 docker 网络。我是否正确地假设在 docker-compose.yml 文件中:
- 端口:向主机公开端口(以及所有其他/所有链接的容器?)
- links:设置启动顺序并允许一个容器使用另一个公开的端口,主机名 = 容器名
- expose:仅将端口公开给所有链接的容器(不是主机,也不是未链接的容器)
所以我必须始终链接和公开?这是否总是双向工作(socket.io 消息也可以发回)?
那么这样的事情是否正确(版本 3 格式):
nodeserver:
ports:
-3000:3000
expose:
-3001
links:
-database
...
database:
(image mysql...)
application:
links:
-nodeserver
...
应用程序和网页现在是否都可以作为 nodeserver:3000 到达 socket.io 服务器?
我已经尝试了其中的一些,但还没有完全发挥作用,所以我想确保首先了解所有内容。 感谢您的帮助!
【问题讨论】:
标签: node.js docker socket.io docker-compose