以Koa2为基础进行dockerfile实践
0 票
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 就是给镜像起名
查看镜像
$ docker images -a
基于此镜像生成容器
开始生成镜像
$ docker run -d --name koa_server -p 8000:3000 daipeng/koa_server:v1.0.0
# -d 后台运行
# --name 给容器起名字
# -p 本机端口隐射镜像中的端口
查看容器
地址访问
http://127.0.0.1:8000/user/view?name=hello%20koa2
导出镜像
$ docker save daipeng/koa_server:v1.0.0 > koa_server.tar
在服务器上运行
将koa_server.tar
上传服务器
解开此压缩包(导入)
$ docker load < koa_server.tar
服务器启动容器
$ docker run -d --name koa_server -p 8000:3000 daipeng/koa_server:v1.0.0
通过dockerhub
上传下载镜像(类似于GitHub)
命令行登录 dockerhub(首先要先注册,地址 https://hub.docker.com/)
$ docker login
给镜像命名
$ docker tag daipeng/koa_server:v1.0.0 youhuabujianye/koa_server:v1.0.0
将镜像上传至 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
配置环境变量
docker
与 jenkins
的结合,通过 docker 生成 jenkins,赋能 CICD集成