一、创建数据卷
在此阅读之前,请先阅读《[013]操作系统原理系列 | 将数据从宿主机挂载到容器三种方式(一) 简要说明》
# 创建数据卷
$ docker volume create nginx_vol
# 查看本地数据卷
$ docker volume ls
# 查看本地数据卷信息
$ docker volume inspect nginx_vol
挂载点:数据实际存储地方,即使删除容器,数据依然存在!!!
二、用卷创建容器
2.1查看nginx站点
# 创建一个nginx容器
$ docker run -d nginx
# 查看容器(xxx ID)
$ docker exec -it xxx bash
$ ls /usr/share/nginx/html/
$ exit
从上面可以知道:站点目录在 /usr/share/nginx/html/
2.2用卷创建容器
# 用卷创建容器(将docker里面的/usr/share/nginx/html目录与宿主机共享)
$ docker run -d --name nginx01 --mount src=nginx_vol,dst=/usr/share/nginx/html nginx
# 查看容器
$ docker inspect nginx01 | more
注意:
有两种方式用卷创建容器:
- docker run -d --name nginx01 --mount src=nginx_vol,dst=/usr/share/nginx/html nginx (更通用!!!)
- docker run -d --name nginx01 -v nginx_vol:/usr/share/nginx/html nginx
# 查看宿主机下目录
$ ls /var/lib/docker/volumes/nginx_vol/_data
2.3用卷创建容器(端口映射)
$ docker run -d --name nginx02 -p 99:80 --mount src=nginx_vol,dst=/usr/share/nginx/html nginx
修改vim /var/lib/docker/volumes/nginx_vol/_data/index.html的文件
浏览器访问:
查看容器里面文件变化情况(/usr/share/nginx/html/)
$ docker exec -it nginx02 bash $ cat /usr/share/nginx/html/index.html
和宿主机上面文件一样!!!说明两者共享数据!!!
三、清理数据卷
# 查看数据卷列表
$ docker volume ls
# 停止用卷创建的容器
$ docker stop nginx01
$ docker stop nginx02
# 删除用卷创建的容器
$ docker rm nginx01
$ docker rm nginx02
# 清理数据卷
$ docker volume rm nginx_vol
$ docker volume ls