docker

关注公众号 jb51net

关闭
首页 > 网站技巧 > 服务器 > 云和虚拟化 > docker > docker打包项目流程

使用docker打包项目的完整流程记录(小白可懂)

作者:秋窗7

这篇文章主要介绍了使用docker打包项目的完整流程,并详细解释了Dockerfile、构建镜像和创建容器的步骤,通过实战项目大家可以掌握基本的Docker打包流程,需要的朋友可以参考下

前言

这并不完全是一个正经的教程,而是根据我的学习经验总结出来的一个模版,大家可以尝试一下,权当了解一下项目打包的流程。

克隆演示项目

我在我的GitHub仓库里已经上传了演示项目,大家可以使用以下命令克隆到本地:

git clone git@github.com:Yuanyi362102/learn-docker.git
cd learn-docker

编写Dockerfile文件

Dockerfile文件是用于构建镜像的关键文件,我们在执行创建镜像的指令时,docker会自动寻找指定目录下的Dockerfile文件,并读取和执行相关指令。

现在让我们用VScode打开这个项目,可以看到项目结构如图所示:

打开Dockerfile文件,查看里面的内容如下:

FROM  node:11
ADD . /app
WORKDIR /app
RUN npm install && npm install -g nodemon
CMD nodemon app.js  

简单解释一下。

构建镜像

使用下面这行命令构建镜像:

docker build -t my-node-app:v1 .

解释一下,这条命令的主干其实就是docker build my-nder-app,意思是构建一个叫做“my-node-app”的镜像,-t是可选参数代表创建tag,即创建标签,“:v1"代表标签为"v1”,最后的"."代表Docker会从当前目录读取Dockerfile文件。

创建容器

使用下面这行命令来创建容器:

 docker run -p 9564:9000 --name testProject -v path:/app my-node-app:v1

这条指令的核心其实就是docker run my-node-app:v1, “-p"代表port,指定容器的9000端口映射到宿主机的9654端口,”--name"是将创建的镜像名称指定为testProject,“-v"指定挂载的数据卷volume,”path“是你项目的绝对路径(根据你的电脑实际情况而定),”:app"就是将刚才Dockerfile中在容器里创建的app目录(同时也是工作目录)映射到数据卷,这样当容器关闭之后,数据就可以保存到本地,同时项目在本地的修改也能即时反馈给容器。

检验效果

如果你成功创建容器,你的终端将会输出如图所示的回显信息:

打开docker的桌面客户端(没有的话可以去安装一下,安装链接:Docker官网下载地址),可以看到以下画面:

点击链接,会跳转到项目地址,你将会看到以下画面

在地址栏,分别尝试输入localhost:9564/sayhellolocalhost:9564/sayok,可以看到如下画面:

在本地项目里面修改一下项目文件,看是否可以不用重启容器就生效

再次访问localhost:9564,会看到返回的信息已经改变(如果你没有在地址栏重新输入地址,而是在旧页面中,要点击浏览器刷新按钮才会更改)。

尾声

至此,简单项目打包的流程就结束了,事实上真正的项目打包肯定会涉及到多个容器,多个容器项目部署又要用到docker-compose相关的知识

您可能感兴趣的文章:
阅读全文