文章目录
前言
制作镜像的前提是:要有一台云服务器和用于存放镜像的仓库。本人使用的是腾讯云服务器,镜像仓库直接使用腾讯云提供的容器服务即可,点我即可查看腾讯云提供的容器服务。
一、安装Docker
由于我的云服务器的操作系统是ubuntu,安装docker一行命令即可搞定
sudo apt-get install docker.io
二、在镜像仓库上创建一个命名空间
我创建的命名空间是sampsonliu,这个命名空间表示以后所有的镜像上传到这个目录下面
三、创建alpine和npm两个镜像
我创建了alpine和npm两个镜像,alpine镜像作为构建nodejs的基础镜像
四、上传镜像版本
1、通过Docker Hub拉取alpine镜像
2、登录腾讯云的镜像仓库
3、上传alpine镜像
sudo docker tag a24bb4013296 ccr.ccs.tencentyun.com/sampsonliu/alpine:0.0.1
sudo docker push ccr.ccs.tencentyun.com/sampsonliu/alpine:0.0.1
4、构建npm镜像
我把构建npm镜像的操作写成了脚本,代码地址是:https://github.com/sampsonliu/base-images/tree/master/nodejs,共有三个核心文件:version、alpine.dockerfile、build.sh
version
VERSION=0.0.1
alpine.dockerfile
FROM ccr.ccs.tencentyun.com/sampsonliu/alpine:0.0.1
RUN set -x \
&& apk -U --no-cache add --update nodejs npm \
&& rm -rf /var/cache/apk/*
&& npm -v \
&& node -v
build.sh
#/bin/bash
set -x
image_group="ccr.ccs.tencentyun.com/sampsonliu"
base_dir=$(cd "$(dirname "$0")";pwd)
version=`sed '/^VERSION=/!d;s/.*=//' ${base_dir}/version`
echo "local version is ${version}"
image_name="npm"
dockerfile="${base_dir}/alpine.dockerfile"
echo "build ${image_name}:${version}" \
&& docker build --pull -t ${image_group}/${image_name}:${version} -f ${dockerfile} ${base_dir} \
&& docker push ${image_group}/${image_name}:${version} \
&& echo "build ${image_name} finish"
构建过程如下:
查看仓库npm镜像版本: