制作 Hello World 镜像上传到京东云镜像仓库
创建项目
一、创建文件
mkdir hellonode #创建hellonode文件夹
cd hellonode/
二、创建 server.js
创建 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);
三、运行并测试
安装 node.js
sudo apt-get install npm
sudo apt-get install nodejs #apt-get安装
sudo yum -y install nodejs #yum安装
node -v #查看版本号验证安装
执行server.js文件
ndoe server.js
测试程序
curl 127.0.0.1:80
显示如下,说明运行成功
四、创建Docker镜像
在项目目录下创建Dockerfile文件
vim Dockerfile
编辑项目 Dockerfile
FROM node:latest
EXPOSE 80
COPY server.js .
CMD node server.js
构建镜像
docker build -t hello-node:v1 .
查看镜像
docker images
显示如下说明构建成功
上传该镜像到京东云镜像仓库
镜像仓库的具体操作指南请参照 京东云容器镜像仓库产品文档
前提条件
- 注册京东云账号并激活、认证账号,可分别访问注册京东云、登录京东云、实名认证进行操作;
- 若您需要创建按配置计费实例,您需要保证您的余额不低于50元,若当前余额不足请进行充值;
- 关于地域及可用区的信息,请参考地域及可用区
一、创建注册表
可以使用已有的注册表,也可以创建新的注册表。
- 打开控制台,选择弹性计算-容器镜像仓库-注册表,选择创建按钮
- 选择地域,支持华北-北京、华东-上海、华南-广州
- 填写名称,名称全局唯一且不支持修改;长度大于3个字符,且不能超过32字符;以小写字母数字开始和结尾,支持使用小写字母、数字、中划线(-)
- 描述非必填项,描述不能超过256个字符,不支持修改
- 注册表URI自动生成,规则为:注册表名称-地域缩写.jcr.service.jdcloud.com
- 点击确定
二、创建镜像仓库
可以使用已有的镜像仓库,也可以创建新的镜像仓库。
- 打开弹性计算-容器镜像仓库-镜像仓库,选择创建按钮
- 选择地域,支持华北-北京、华东-上海、华南-广州
- 选择所属注册表
- 填写名称,名称大于3个字符且不超过255个字符,同一注册表下名称唯一且不可修改;支持使用多级命名空间,命名空间以/分隔,各级命名空间不可为空,以小写字母数字开始和结尾,支持使用小写字母、数字、中划线(-),下划线( _ )
- 描述非必填项,描述不能超过256个字符,不支持修改
- 镜像仓库URI自动生成,注册表URI/镜像仓库名称
- 点击确定
三、获取临时令牌
- 打开弹性计算-容器镜像仓库-注册表,点击获取临时令牌,您可以使用临时令牌完成Docker客户端的授权认证;一个小时内最多申请5个临时令牌
- 设置临时令牌的有效期:默认为12小时;范围为1~24小时的整数。点击确定
- 弹窗“下载临时令牌”,单击“下载.xlsx文件”,将临时令牌下载到本地,文件名“registry名称-token.xlsx”。或者复制保存信息。 注:关闭后,无法再次获取临时令牌的Docker客户端登录命令
四、上传、下载镜像
例:注册表为myregistry-test,镜像仓库为myrepo,镜像版本号为latest,地域选择华北-北京为cn-north-1。用户可根据具体情况修改。
使用京东云CLI获取登录指定注册表的临时令牌或在控制台获取临时令牌:
配置KEY
jdc configure add --profile default --access-key your-ak --secret-key your-sk
显示如下说明配置成功
获取临时令牌
jdc containerregistry get-authorization-token --region-id cn-north-1 --registry-name myregistry-test
显示如下说明获取成功
使用临时令牌,登录到京东云的注册表;如您使用京东云CLI获取临时令牌,请输入返回的Docker客户端登录命令:
docker login -u jdcloud -p ********* myregistry-test-cn-north-1.jcr.service.jdcloud.com
显示如下说明配置成功
将镜像推送到京东云镜像仓库,本地镜像例为hello-node:v1 标记待推送到京东云镜像仓库中的本地镜像:
docker tag hello-node:v1 myregistry-test-cn-north-1.jcr.service.jdcloud.com/hello-node:v1
创建镜像仓库hello-node
将已标记的镜像推送到京东云镜像仓库:
docker push myregistry-test-cn-north-1.jcr.service.jdcloud.com/hello-node:v1
显示如下说明推送成功
从京东云镜像仓库拉取镜像:
docker pull myregistry-test-cn-north-1.jcr.service.jdcloud.com/hello-node:v1
推送成功后,可以获取镜像 URI 在云鼎应用部署平台部署该镜像。