一,概述

上一节,已经使用docker多阶段构建部署vue项目,但是存在一个问题。当我们代码有所修改的时候,想要代码能够实时更新,而不需要重新部署。
于是就需要引入目录挂载

二,目录挂载的几种方式

bind mount 直接把宿主机目录映射到容器内,适合挂代码目录和配置文件。可挂到多个容器上
volume 由容器创建和管理,创建在宿主机,所以删除容器不会丢失,官方推荐,更高效,Linux 文件系统,适合存储数据库数据。可挂到多个容器上
tmpfs mount 适合存储临时文件,存宿主机内存中。不可多容器共享。

在这里插入图片描述

三,执行目录挂载的示例

bind mount 方式用绝对路径 -v D:/code:/app
volume 方式,只需要一个名字 -v db-data:/app

接下来用bind mount 方式用绝对路径测试。
之前,我们基于vuesecond镜像创建容器vueApp2的命令行是:

docker run -p 3002:80 -d --name vueApp2 vuesecond

而现在,我们需要进行目录挂载,也就是把本地的代码和容器中的代码关联起来。

docker run -p 8080:80 --name test-hello -v C:\Users\Administrator\Desktop\test1\vuuue:/app -d vuesecond
-p 8080:80是指容器的80端口暴露给宿主机的8080端口。
--name test-hello 是把要新建的容器命名为test-hello
 -v C:\Users\Administrator\Desktop\test1\vuuue:/app 是bind mount 方式把C:\Users\Administrator\Desktop\test1\vuuue的代码映射到docker容器的/app目录下。
 -d 是后台运行
 vuesecond是指基于vuesecond这个镜像创建容器。

在这里插入图片描述
浏览器中访问:
在这里插入图片描述

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐