# 注释: VOLUME 数据卷 FROM busybox WORKDIR /App/Datas/ RUN /bin/sh -c 'echo Dockerfile设置VOLUME > demo.data' WORKDIR /App/Logs/ RUN /bin/sh -c 'echo 我是日志内容 > demo.log' # VOLUME设置放在文件操作之后,这样容器启动之后,数据卷里就有文件;可以设置数据卷中的默认文件。 VOLUME ["/App/Datas/","/App/Logs/"] WORKDIR /App # docker build -f Dockerfile.VOLUME -t study.dockerfile.volume:latest -t study.dockerfile.volume:0.0.1 . # docker run -it study.dockerfile.volume # docker run --rm -it study.dockerfile.volume # 启动容器加 --rm 参数时,导致容器退出时 VOLUME 数据卷也自动删除;手动删除的保留数据卷。 # 查看VOLUEM 方法一:docker inspect container_id 方法二:docker voluem ls # 可以使用 Docker run -v 覆盖 # linux # docker run --rm -it -v \Data1:/App/Datas study.dockerfile.volume # windows # docker run --rm -it -v D:\Data1:/App/Datas study.dockerfile.volume # --volumes-from 从指定容器加载数据卷 # docker run --rm -it --volumes-from 容器列表 study.dockerfile.volume # 问题:Docker Desktop for Windows下, Docker run -v 指定Windows宿主机目录,覆盖之后, 镜像中的数据卷原有的文件被清空了-默认存在的文件被清空了;而Linux下,数据卷中默认文件被保留了。