部署docker
部署和开发环境不一样,我们不需要频繁地进入到容器内部,所以一般我们会将代码和环境打包到一块,部署到服务器上
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、按照上面的流程运行容器
最新文章
- AngularJs最简单解决跨域问题案例
- UVALive 4329 Ping pong
- TreeMap的使用
- VC++ Debug编译方式
- max_allowed_packet
- cf111D Petya and Coloring 组合数学,二项式反演
- Asp.net下载文件
- C语言链表全操作(增,删,改,查,逆序,递增排序,递减排序,链式队列,链式栈)
- Selenium WebDriver + Grid2 + RSpec之旅(二)----Grid2的配置
- 在sublime text 3中安装中文支持
- 修改过mysql数据库字段内容默认值为当前时间
- Git 系列(一):什么是 Git
- Vuex 最简单的数量增减实例
- UVA - 242 线性DP
- 【题解】P1171 售货员的难题
- oracle根据某个字段的值进行排序
- bzoj1026: [SCOI2009]windy数(数位dp)
- AI 蒙特卡罗算法
- PAT 乙级 1064 朋友数(20) C++版
- python webdriver api-右键另存下载文件
热门文章
- CSS3径向渐变linear-gradient
- ios8 - CoreLocation定位服务的变化
- 利用Appium Python测试爱壁纸的登录和设置壁纸
- java中+=详解 a+=b和a=a+b的区别
- C++面向对象高级编程(七)point-like classes和function-like classes
- 给SqlParameter参数指定或不指定:@变量标识符的区别是什么?
- 微信小程序之答题领券系统构建
- 【paper】KDD15 - Interpreting Advertiser Intent in Sponsored Search
- C++头文件预编译与命名空间使用方法
- ubuntu 安装nodejs/npm