docker数据卷挂载

docker数据卷挂载笔记

我们的服务运行时必不可少的会产生一些日志,或是我们需要把容器内的数据进行备份,甚至多个容器之间进行数据共享,这必然涉及容器的数据管理操作。

容器中管理数据主要有两种方式: **1. 数据卷 ** 2. 数据卷容器

1. 数据卷

数据卷是一个可供容器使用的特殊目录,它绕过文件系统,可以提供很多有用的特性:

  • 数据卷可以在容器之间共享和重用
  • 对数据卷的修改会立马生效
  • 对数据卷的更新,不会影响镜像
  • 卷会一直存在,直到没有容器使用

2. 数据卷的创建,查看,删除

docker run --name testweb -d -p 92:80 -v testwebvloume:/usr/share/nginx/html/ nginx:v3
#利用nginx:v3镜像创建了一个名为testweb的容器,对外暴露的端口号是92,将/usr/share/nginx/html目录与数据卷testwebvloume 映射。
docker volume create volume_name #表示创建一个数据卷。
docker volume ls #列出数据卷列表
docker volume rm volume_name #删除指定数据卷
docker volume inspect volume_name #查看数据卷的详细信息
例如:docker volume inspect testwebvloume
[
    {
        "CreatedAt": "2019-07-26T11:55:06+08:00",
        "Driver": "local",
        "Labels": null,
        "Mountpoint": "/var/lib/docker/volumes/testwebvloume/_data",#表示数据卷的挂载点也就是挂载位置
        "Name": "testwebvloume",
        "Options": null,
        "Scope": "local"
    }
]
#使用docker volume --help 帮助查看命令使用指南
Usage:  docker volume COMMAND
Manage volumes
Commands:
  create      Create a volume
  inspect     Display detailed information on one or more volumes
  ls          List volumes
  prune       Remove all unused local volumes
  rm          Remove one or more volumes

3. 数据卷容器

如果用户需要在容器之间共享一些持续更新的数据,最简单的方式是使用数据卷容器,数据卷容器其实是一个普通的容器,专门用来提供数据卷供其它容器挂载。

 docker run -v commmon:/usr/share/nginx/html/ --name commvolume nginx:v3
 #创建一个名为commvolume的容器,他的数据目录挂载到common中
 docker run -d -p 99:80 --name commweb --volumes-from  commvolume  nginx:v3
 #创建一个容器名为commweb,它的数据卷来自于commvolume 容器。