• data volume的缺陷:在Windows环境的docker中,无法查看volume所在的文件路径
  • 使用bind mount就能在Windows本地打开volume所在目录
    使用的Dockerfile:

    1. FROM alpine:latest
    2. RUN apk update
    3. RUN apk --no-cache add curl
    4. ENV SUPERCRONIC_URL=https://github.com/aptible/supercronic/releases/download/v0.1.12/supercronic-linux-amd64 \
    5. SUPERCRONIC=supercronic-linux-amd64 \
    6. SUPERCRONIC_SHA1SUM=048b95b48b708983effb2e5c935a1ef8483d9e3e
    7. RUN curl -fsSLO "$SUPERCRONIC_URL" \
    8. && echo "${SUPERCRONIC_SHA1SUM} ${SUPERCRONIC}" | sha1sum -c - \
    9. && chmod +x "$SUPERCRONIC" \
    10. && mv "$SUPERCRONIC" "/usr/local/bin/${SUPERCRONIC}" \
    11. && ln -s "/usr/local/bin/${SUPERCRONIC}" /usr/local/bin/supercronic
    12. COPY my-cron /app/my-cron
    13. WORKDIR /app
    14. VOLUME ["/app"]
    15. # RUN cron job
    16. 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中添加到设置里面 三、Docker存储-数据持久化之Bind-Mount - 图1