上一节,已经使用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:UsersAdministratorDesktoptest1vuuue:/app -d vuesecond -p 8080:80是指容器的80端口暴露给宿主机的8080端口。 --name test-hello 是把要新建的容器命名为test-hello -v C:UsersAdministratorDesktoptest1vuuue:/app 是bind mount 方式把C:UsersAdministratorDesktoptest1vuuue的代码映射到docker容器的/app目录下。 -d 是后台运行 vuesecond是指基于vuesecond这个镜像创建容器。
浏览器中访问:



