└─data-volumes-01-starting-setup
    ├─feedback
    ├─pages
    ├─public
    └─temp

其中,pages里存放 html 文件,public 存放 css,temp 是网站的临时数据,feedback 是将临时数据持久化存放的位置。

首先构建一个 Dockerfile 先跑起来,并绑定一个 匿名Volume:

FROM node
 
WORKDIR /app
 
COPY package.json /app/
 
RUN npm install
 
COPY . /app/
 
EXPOSE 80
 
CMD ["npm", "start"]

接着执行:

docker build -t feedback:volumes .

来创建一个名称和标签为 feedback:volumes 的镜像。

运行:

docker run -d -p 7749:80 --rm --name feedback-app -v feedback:/app/feedback -v "E:\Study\docker\dockerLearning\1 初识docker\Data&Volume\data-volumes-01-starting-setup:/app:ro" -v /app/temp -v /app/node_modules feedback:volumes

其中第二个设置 bind mounts 时,多出的 :ro 是设置docker在该目录下只能进行读操作,严格规定避免本机中的文件收到意外操作被删除。也因此需要把 docker 用到的需要写数据的目录单独使用一个匿名 Volume 来存放,即 /app/temp/app/node_modules 以及 /app/feedback