本文档旨在帮助大家了解如何快速创建一个容器集群内的 Hello World 的 Node.js 版的服务。
以CentOS 7.6为例
yum install -y nodejs
mkdir hellonode
cd hellonode/
vim server.js
var http = require('http');
var handleRequest = function(request, response) {
console.log('Received request for URL: ' + request.url);
response.writeHead(200);
response.end('Hello World!');
};
var www = http.createServer(handleRequest);
www.listen(80);
按 “Esc”,输入 “:wq”,保存文件并返回。
node server.js
测试 Hello World 程序,有以下两种办法。
另起一个终端,再次登录节点,执行以下命令。
curl 127.0.0.1:80
# 终端会输出一下信息
Hello World!
打开本地主机的浏览器,以IP地址:端口的形式访问,端口为80。
网页出现Hello world!说明 Hello World 程序运行成功。
注意:如果本地主机不在该节点所在的内网,IP地址应该是该节点的外网地址
[root@VM_1_98_centos hellonode]# vim Dockerfile
FROM node:4.4
EXPOSE 80
COPY server.js .
CMD node server.js
按 “Esc”,输入 “:wq”,保存文件并返回。
docker build -t hello-node:v1 .
docker images
显示结果如下,则说明 hello-node 镜像已成功构建,记录其 IMAGE ID。如下图所示:

依次执行以下命令,上传镜像到 qcloud 仓库。
sudo docker login -u tkestack -p 【访问凭证】 default.registry.tke.com
sudo docker tag 【IMAGEID】 default.registry.tke.com/【命名空间】/helloworld:v1
sudo docker push default.registry.tke.com/【命名空间】/helloworld:v1
- 请将命令中的 【访问凭证】 替换为 已创建的访问凭证。
- 请将命令中的 【IMAGEID】 替换为 你自己创建镜像的ID,示例中的ID如上图158204134510。
- 请将命令中的 【命名空间】 替换为 已创建的命名空间。
显示以下结果,则说明镜像上传成功。



注意:
镜像,地址要填全:default.registry.tke.com/【命名空间】/【镜像名】,例如:default.registry.tke.com/test/helloworld
服务所在集群的安全组需要放通节点网络及容器网络,同时需要放通30000 - 32768端口,否则可能会出现容器服务无法使用问题。
可通过以下两种方式访问 Hello World 服务。
选择【服务】>【Service】,在“Service”管理页面,看到与名为helloworld的Deployment同名的 helloworld Service已经运行,如下图所示:
在本地主机的浏览器地址栏输入集群任意节点IP:30000 端口,例如10.0.0.1:30000即可访问服务。如果服务创建成功,访问服务时页面会返回 Hello World!
注意:如果本地主机在集群内网中,输入节点的内网IP地址即可;如果本地主机不在集群内网中,需要输入节点的外网IP地址
集群内的其他服务或容器可以直接通过服务名称访问。
更多关于Docker 镜像请参见 如何构建 Docker 镜像 。