博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
部署docker
阅读量:4330 次
发布时间:2019-06-06

本文共 1143 字,大约阅读时间需要 3 分钟。

部署和开发环境不一样,我们不需要频繁地进入到容器内部,所以一般我们会将代码和环境打包到一块,部署到服务器上

Clone 代码

将项目代码克隆到本地 git clone git@git.coding.net:hxhxiao/c2m_api.git

Dockerfile

部署的 Dockerfile 和开发环境也不一样,docker/Dockerfile

FROM hub.c.163.com/library/node:8.2.1COPY . /app  WORKDIR /appRUN npm install pm2 -g --registry=https://registry.npm.taobao.orgRUN npm install --registry=https://registry.npm.taobao.orgEXPOSE 5015CMD ["npm", "start"]

COPY . /app 表示将代码从上下文复制到容器的 /app 目录下,并且将其设置为工作目录 WORKDIR

这里的两个 RUN ... 是运行 Node 程序的需要,安装了一些依赖包

CMD ["npm", "start"] 表示容器启动后执行的命令,详细用法请看文档

创建镜像

运行 docker build -t c2mapi:v1.0 -f docker/Dockerfile ."

该命令基于上面的 Dockerfile 创建了一个 image 镜像出来,这里以 . 作为上下文,就是当前项目的根目录都加载到上下文中

-t c2mapi:v1.0 这里我们是以 名字:版本号 的格式来的,因为牵涉到更新,会有不同的版本号产生

-f docker/Dockerfile 表示使用 docker/Dockerfile 作为配置文件

创建并运行容器

运行 docker run -d -p 5115:5015 --name C2MAPI c2mapi

这里的的 -p 5115:5015 表示将 docker 容器的 5015 端口映射到本地的 5115 端口上

--name C2MAPI 指定了该容器的名字为 C2MAPI

和开发环境不一样的是,这里我们不需要 it 参数,也就是,容器会随着实际的运行命令的终止而终止

更新

部署后的项目是免不了更新的,那么我们可以按照下面的步骤来

1、更新代码

2、按照上面的流程创建一个新的镜像,可能是 docker build -t c2mapi:v2.0 -f docker/Dockerfile ."

3、按照上面的流程运行容器

转载于:https://www.cnblogs.com/zhangxiaoliu/p/7518500.html

你可能感兴趣的文章
技术分析淘宝的超卖宝贝
查看>>
i++和++1
查看>>
react.js
查看>>
P1313 计算系数
查看>>
NSString的长度比较方法(一)
查看>>
Azure云服务托管恶意软件
查看>>
My安卓知识6--关于把项目从androidstudio工程转成eclipse工程并导成jar包
查看>>
旧的起点(开园说明)
查看>>
生产订单“生产线别”带入生产入库单
查看>>
crontab导致磁盘空间满问题的解决
查看>>
java基础 第十一章(多态、抽象类、接口、包装类、String)
查看>>
Hadoop 服务器配置的副本数量 管不了客户端
查看>>
欧建新之死
查看>>
自定义滚动条
查看>>
APP开发手记01(app与web的困惑)
查看>>
笛卡尔遗传规划Cartesian Genetic Programming (CGP)简单理解(1)
查看>>
mysql 日期时间运算函数(转)
查看>>
初识前端作业1
查看>>
ffmpeg格式转换命令
查看>>
万方数据知识平台 TFHpple +Xpath解析
查看>>