我有一个包含2个名为“web”和“db”的服务(容器)的撰写文件。
{
"version": "2",
"services": {
"web": {
"image": "nodejs:latest",
"ports": ["80"]
},
"db": {
"image": "mysql:latest",
"ports": ["3306"]
}
}
}
我能够通过使用“db”作为我的数据库的ip来从Web容器访问db容器。在compose文件中使用“hostname”有什么好处,如下所示?
{
"version": "2",
"services": {
"web": {
"image": "nodejs:latest",
"hostname": "web",
"ports": ["80"]
},
"db": {
"image": "mysql:latest",
"hostname": "db",
"ports": ["3306"]
}
}
}
答案 0 :(得分:3)
在version '2' of docker-compose syntax中引入了在容器之间私有网络中自动发现主机的功能。在您只能通过其链接别名引用容器之前。还有其他解决方案来创建发现 - 例如。添加代理或“大使”容器。
话虽如此,我会看到使用主机名的3个理由: