docker数据卷:
1.mount到主机中,绕开分层文件系统
2.和主机磁盘性能相同,容器删除后依然保留
3.仅限本地磁盘,不能随容器迁移
docker提供了两种卷:
1.build mount:
将主机上的目录或文件mount到主机里
使用-v选项指定路径,格式<host path>:<container path>
docker run -d --name web -v /opt/website:/usr/share/nginx/html nginx
直接获取容器内信息:
[root@localhost ~]# docker run -it --rm nginx bash
root@ad7a9552c36a:/# ls
bin boot dev docker-entrypoint.d docker-entrypoint.sh etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
root@ad7a9552c36a:/# cd /usr/share/nginx/html/
root@ad7a9552c36a:/usr/share/nginx/html# ls
50x.html index.html
root@ad7a9552c36a:/usr/share/nginx/html# cat index.html
docker run -d --name web -v /www:/usr/share/nginx/html nginx
根下创建了一个www的目录
docker inspect web
访问这个IP:
报错403
在刚刚新建的出来的www目录里创建一个页面:
echo www1.org > index.html
可以访问
docker inspect web
-v 可以指多个路径
在指向路径的最后加:ro 表示只读 无法改写
2.docker managed volume
build mount必须指定host文件系统路径
docker managed volume不需要指定mount源 docker自动为容器创建数据卷目录
默认创建的数据卷目录都在/var/lib/docker/volumes中
如果挂载时指向容器内已有的目录,原有数据会被复制到volume中
下载registry镜像:
docker pull registry
因为里面有:
docker run -d --name web registry
docker inspect web
自动生成:
如果删除容器:这个卷还在:
docker volume ls
需要手动回收:
docker volume prune
手动创建:
docker volume create web
docker run -d --name demo -v web:/usr/share/nginx/html nginx
docker inspect demo
没有报错: