部署docker
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了部署docker相关的知识,希望对你有一定的参考价值。
部署和开发环境不一样,我们不需要频繁地进入到容器内部,所以一般我们会将代码和环境打包到一块,部署到服务器上
Clone 代码
将项目代码克隆到本地 git clone [email protected]: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、按照上面的流程运行容器
以上是关于部署docker的主要内容,如果未能解决你的问题,请参考以下文章
Docker删除报错:Error response from daemon: conflict: unable to delete 08b152afcfae (must be forced)(代码片段
markdown [Docker] Docker片段列表和命令#linux #docker #snippets