Docker 容器的数据卷

时间:2021-07-04 06:03:06

数据卷的特点:

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 里的数据。