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

Clone 代码

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

Dockerfile

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

FROM hub.c.163.com/library/node:8.2.1

COPY . /app
WORKDIR /app RUN npm install pm2 -g --registry=https://registry.npm.taobao.org RUN npm install --registry=https://registry.npm.taobao.org EXPOSE 5015 CMD ["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、按照上面的流程运行容器

最新文章

  1. AngularJs最简单解决跨域问题案例
  2. UVALive 4329 Ping pong
  3. TreeMap的使用
  4. VC++ Debug编译方式
  5. max_allowed_packet
  6. cf111D Petya and Coloring 组合数学,二项式反演
  7. Asp.net下载文件
  8. C语言链表全操作(增,删,改,查,逆序,递增排序,递减排序,链式队列,链式栈)
  9. Selenium WebDriver + Grid2 + RSpec之旅(二)----Grid2的配置
  10. 在sublime text 3中安装中文支持
  11. 修改过mysql数据库字段内容默认值为当前时间
  12. Git 系列(一):什么是 Git
  13. Vuex 最简单的数量增减实例
  14. UVA - 242 线性DP
  15. 【题解】P1171 售货员的难题
  16. oracle根据某个字段的值进行排序
  17. bzoj1026: [SCOI2009]windy数(数位dp)
  18. AI 蒙特卡罗算法
  19. PAT 乙级 1064 朋友数(20) C++版
  20. python webdriver api-右键另存下载文件

热门文章

  1. CSS3径向渐变linear-gradient
  2. ios8 - CoreLocation定位服务的变化
  3. 利用Appium Python测试爱壁纸的登录和设置壁纸
  4. java中+=详解 a+=b和a=a+b的区别
  5. C++面向对象高级编程(七)point-like classes和function-like classes
  6. 给SqlParameter参数指定或不指定:@变量标识符的区别是什么?
  7. 微信小程序之答题领券系统构建
  8. 【paper】KDD15 - Interpreting Advertiser Intent in Sponsored Search
  9. C++头文件预编译与命名空间使用方法
  10. ubuntu 安装nodejs/npm