三十、Docker存储-数据持久化之Bind Mount
2021-12-18 本文已影响0人
InsaneLoafer
- data volume的缺陷:在Windows环境的docker中,无法查看volume所在的文件路径
- 使用bind mount就能在Windows本地打开volume所在目录
使用的Dockerfile:
FROM alpine:latest
RUN apk update
RUN apk --no-cache add curl
ENV SUPERCRONIC_URL=https://github.com/aptible/supercronic/releases/download/v0.1.12/supercronic-linux-amd64 \
SUPERCRONIC=supercronic-linux-amd64 \
SUPERCRONIC_SHA1SUM=048b95b48b708983effb2e5c935a1ef8483d9e3e
RUN curl -fsSLO "$SUPERCRONIC_URL" \
&& echo "${SUPERCRONIC_SHA1SUM} ${SUPERCRONIC}" | sha1sum -c - \
&& chmod +x "$SUPERCRONIC" \
&& mv "$SUPERCRONIC" "/usr/local/bin/${SUPERCRONIC}" \
&& ln -s "/usr/local/bin/${SUPERCRONIC}" /usr/local/bin/supercronic
COPY my-cron /app/my-cron
WORKDIR /app
VOLUME ["/app"]
# RUN cron job
CMD ["/usr/local/bin/supercronic", "/app/my-cron"]
Bind Mount使用
在构建容器加上 -v
参数时,映射的路径改为自定义路径即可:
- Windows环境:
docker run -d -v ${pwd}:/app my-cron
,花括号中代表当前路径,也可自定义 - 在Mac和Linux环境:
docker run -d -v $(pwd):/app my-cron
,括号中代表当前路径
Note:
Windows环境需要先把目标路径在Docker Desktop中添加到设置里面
image.png