以Koa2为基础进行dockerfile实践

Koa项目搭建

省略

创建 Dockerfile

$ touch Dockerfile

编写 Dockerfile

# base image
# FROM
FROM node

# 复制文件到容器
ADD . /home/www

# 进入工作目录
WORKDIR /home/www

# 安装项目依赖包
RUN npm install --registry=https://registry.npm.taobao.org

# 暴露 端口
EXPOSE 3000

# 开始命令
CMD ["node", "./index.js"]

基于 dockerfile 生成镜像

为了加快构建速度,我们先生成 .dockerignore ,并往里写上 node_modules

$ touch .dockerignore # docker构建忽略文件

开始生成镜像

$ docker build . -t daipeng/koa_server:v1.0.0
# -t 就是给镜像起名

image-20220630150333752

查看镜像

$ docker images -a

image-20220630150552199

基于此镜像生成容器

开始生成镜像

$ docker run -d --name koa_server -p 8000:3000 daipeng/koa_server:v1.0.0
# -d 后台运行
# --name 给容器起名字
# -p 本机端口隐射镜像中的端口

查看容器

image-20220630150912039

地址访问

http://127.0.0.1:8000/user/view?name=hello%20koa2

导出镜像

$ docker save daipeng/koa_server:v1.0.0 > koa_server.tar

image-20220630151641219

在服务器上运行

koa_server.tar上传服务器

解开此压缩包(导入)

$ docker load < koa_server.tar

image-20220630153745179

服务器启动容器

$ docker run -d --name koa_server -p 8000:3000 daipeng/koa_server:v1.0.0

image-20220630154257212

通过dockerhub上传下载镜像(类似于GitHub)

命令行登录 dockerhub(首先要先注册,地址 https://hub.docker.com/

$ docker login

给镜像命名

$ docker tag daipeng/koa_server:v1.0.0 youhuabujianye/koa_server:v1.0.0

image-20220630154957188

将镜像上传至 dockerhub

$ docker push youhuabujianye/koa_server:v1.0.0

登录服务器=>拉取镜像

注意:这里需要打标签版本号,否则会默认拉取 latest

$ docker pull youhuabujianye/koa_server:v1.0.0

启动容器

$ docker run -d --name koa_server -p 8000:3000 youhuabujianye/koa_server:v1.0.0

注意

端口映射,服务器开发端口需要去云服务商控制台开放相应端口(安全组配置规则)

后续

dockerfile配置环境变量

dockerjenkins 的结合,通过 docker 生成 jenkins,赋能 CICD集成