Skip to content

磁盘

Volume

Volume 是特殊目录,它绕过 UFS,可以提供很多有用的特性。

  • Volume 可以共享重用
  • Volume 的修改会立刻生效
  • Volume 的更新不会影响镜像
  • Volume 会一直存在,即使容器被删除
sh
docker volume create my-vol

docker volume ls

# 查看 volume 信息
docker inspect [container id]

docker volume rm my-vol

# 删除所有未使用的 volume
docker volume prune
sh
docker run -d -P \
    --name web \
    # -v my-vol:/usr/share/nginx/html \
    --mount source=my-vol,target=/usr/share/nginx/html \
    nginx:alpine

mount

sh
docker run -d -P \
    --name web \
    # -v /src/webapp:/usr/share/nginx/html \
    --mount type=bind,source=/src/webapp,target=/usr/share/nginx/html \
    nginx:alpine

路径必须是绝对路径

主机 /src/webapp -> 容器 /usr/share/nginx/html

--mount 时本地目录不存在,Docker 会报错。

-v 时本地目录不存在,Docker 会自动创建。

readonly

sh
--mount type=bind,source=/src/webapp,target=/usr/share/nginx/html,readonly

注意最后那个 readonly,只读。