docker数据卷+挂载(命令讲解+示例)

在容器中管理数据主要有两种方式: 数据卷(Volumes) 、挂载主机目录 (Bind mounts)。

一、数据卷

数据卷是一个可供一个或多个容器使用的特殊目录,可以在容器之间共享和重用。

特点:

  • 对 数据卷 的修改会立马生效
  • 对 数据卷 的更新,不会影响镜像
  • 数据卷 默认会一直存在,即使容器被删除

创建数据卷

  • docker volume create my-vol

删除数据卷

  • docker volume rm my-vol
  • 清理无主数据卷:docker volume prune

查看数据卷

  • 查看所有数据卷:docker volume ls
  • 查看指定数据卷信息:docker volume inspect my-vol
  • 查看指定容器中数据卷信息:docker inspect web下Mounts数据中

挂载数据卷

docker run命令中使用--mount将数据卷挂载到容器里,可挂载多个,镜像中的被指定为挂载点的目录中的文件会复制到数据卷中(仅数据卷为空时会复制)。(类似操作系统mount操作)

docker数据卷+挂载(命令讲解+示例)_第1张图片

docker数据卷+挂载(命令讲解+示例)_第2张图片

二、挂载主机目录

docker run的--mount参数同样可以挂载一个本地主机的目录到容器中去,也可以从主机挂载单个文件到容器中。

  • sudo docker run -dit --mount type=bind,source=/var,target=/var ubuntu
  • sudo docker run -dit --mount type=bind,source=$HOME/.bash_history,target=/root/.bash_history

本地目录的路径必须是绝对路径;如果本地目录不存在会报错。

Docker挂载主机目录的默认权限是读写,用户也可以通过增加readonly指定为只读:

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

查看容器信息时同样可以看到:

docker数据卷+挂载(命令讲解+示例)_第3张图片

你可能感兴趣的:(Docker学习,docker,容器,运维)