当我在pod / pod模板中定义多个容器时,比如一个运行nginx和另一个php-fpm的容器,它们如何相互访问?
我是否必须在定义中定义一些链接(我找不到解释所有可用配置选项的文档),或者默认情况下它们可以互相定义吗?
如果是,我必须在配置文件中放入什么值? 我阅读了共享网络命名空间,但我不知道这究竟意味着什么?
我也找不到任何例子。
答案 0 :(得分:21)
pod中的所有容器都绑定到同一网络命名空间。
这意味着(a)它们都具有相同的IP地址,(b)localhost
在所有容器中都是相同的。换句话说,如果您在一个容器中运行Apache并在另一个容器中运行MysQL,您可以从localhost:3306
从Apache容器访问MySQL(并且您可以从MySQL访问localhost:80
处的Apache容器)。
虽然容器共享网络,但它们不共享文件系统。如果要在容器之间共享文件,则需要使用卷。有一个简单的卷示例here。
答案 1 :(得分:0)
吊舱中的容器可以使用localhost:port_no相互交谈。 。如果nodejs服务器正在访问mongodb,并且两者都在同一个pod中运行,则只需在连接字符串中写入localhost:27017即可。 Pod中典型的nodejs-mongodb连接示例
var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017/mydb";
MongoClient.connect(url, function(err, db) {
if (err) throw err;
console.log("Database created!");
db.close();
});