数据卷的特点:
1. 数据卷在容器启动时初始化,如果容器使用的镜像在挂载点包含了数据,这些数据会拷贝到新初始化的数据卷中
2. 数据卷可以在容器之间共享和重用
3. 可以对数据卷里的内容直接进行修改
4.数据郑的变化不会影响镜像的更新
5. 卷会一直存在,即使挂载数据卷的容器已经被删除。
在宿主机创建卷(下面命令中 nginx-vol 为自定义的数据卷的名称)
docker volume create nginx-vol
创建的数据卷的位置是: /var/lib/docker/volumes
查看卷
docker volume ls
docker volume inspect nginx-vol
用卷创建一个容器
docker run -d -it --name nginx-test -p 8080:80 --mount src=nginx-vol,dst=/usr/shar/nginx/html nginx
另外一种为容器添加数据卷的方式:
docker run -it -v <宿主机的目录>:<docker容器中的目录> <镜像名> <命令> 如:
docker run -it -v ~/dataVolumn:/data ubuntu /bin/bash
这样我们在容器的 ./data 目录下创建新文件后,在宿主机的 ~/dataVolumn 目录下就能看见相应的文件。所以这个命令也就是把宿主机的目录和容器里的目录做了一个映射。
数据卷容器 -- 某个挂载了数据卷的容器。别的容器启动时挂载到数据卷容器上,可以实现多个容器共享数据。
如: 启动一个挂载了数据卷的容器,并取一个名字 docker run -it -v ~/dataVolumn:/data --name dv1 ubuntu /bin/bash
启动另外一个容器,并挂载刚才的数据卷容器: docker run -it --name dv2 --volumes-from dv1 ubuntu /bin/bash
这样,在dv2 这个容器中就可以看到 dv1 里的数据。