我有一个包含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"]
}
}
}
最佳答案
在version '2' of docker-compose syntax中引入了在容器之间的专用网络中自动发现主机的功能。在您只能通过容器的链接别名引用容器之前。还有其他创建发现的解决方案-例如。添加代理或“大使”容器。
话虽如此,我会看到3个使用主机名的原因:
关于docker - Docker撰写和主机名,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42291409/