Docker Volume (数据卷),用于保存持久化的数据,能够通过Docker Volume将数据保存在主机上(即将容器的文件目录与本地绑定,类似于共享文件夹)

通过Dockerfile

FROM alpine
VOLUME ["/data"]    # 使用 VOLUME
ENTRYPOINT ["/bin/sh"]

会在主机目录 /var/lib/docker/volumes/name/ 下创建目录_data

可以通过检查容器来获取详细路径

docker container inspect -f "{{ json .Mounts }}"  c2 | jq

运行时定义卷

使用 -v 选项定义

通过 Volume Api

  1. 创建新卷docker volume create --name html

  2. 查看新卷docker volume ls

    DRIVER              VOLUME NAME
    [other previously created volumes]
    local               html
    
  3. 检查卷docker volume inspect html

    [
        {
            "Driver": "local",
            "Labels": {},
            "Mountpoint": "/var/lib/docker/volumes/html/_data",
            "Name": "html",  # Dockerfile创建的是随机名字
            "Options": {},
            "Scope": "local"
        }
    ]
    
  4. 运行时绑定卷html到容器内的nginx web目录docker run -d -p 8080:80 -v html:/usr/share/nginx/html nginx

将主机的文件夹挂载到容器中

docker container run -v HOST_PATH:CONTAINER_PATH [OPTIONS] IMAGE [CMD]

如果容器内不存在挂载的文件夹,就会重新创建,如果存在则会覆盖其内容