我有一个包含 2 个名为“web”和“db”的服务(容器)的撰写文件。
{
"version": "2",
"services": {
"web": {
"image": "nodejs:latest",
"ports": ["80"]
},
"db": {
"image": "mysql:latest",
"ports": ["3306"]
}
}
}
我可以使用“db”作为数据库的 IP 从 Web 容器访问 db 容器。在撰写文件中使用“主机名”有什么好处,如下所示?
{
"version": "2",
"services": {
"web": {
"image": "nodejs:latest",
"hostname": "web",
"ports": ["80"]
},
"db": {
"image": "mysql:latest",
"hostname": "db",
"ports": ["3306"]
}
}
}
容器之间的私网主机自动发现功能已在docker-compose 语法的版本“2” https://docs.docker.com/compose/compose-file/compose-versioning/#version-2。之前您只能通过链接别名来引用容器。还有其他解决方案可以创造发现 - 例如。添加代理或“大使”容器。
话虽如此,我认为使用主机名有 3 个原因:
- 发现基于服务名称,并不总是需要是主机名。
- 一项服务中可以有多个主机名(例如 Web 服务器)
- 如果您想在不同环境之间保持一致的配置,您可以使用主机名来描述应用程序正在使用的其他端点,而不是依赖于服务名称
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)