└─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
。