默认情况下运行容器执行完操作后,容器会立即退出处于停止状态,之前在容器中所操作的修改和储存的数据都会一并消失,
为了能存储数据,docker提供了数据卷和数据卷容器来解决这个问题。
数据卷:
数据卷是一个可供一个或多个容器使用的特殊目录,可以提供很多有用的特性:
- 数据卷可以在容器之间共享和重用
- 对数据卷的修改会立马生效
- 对数据卷的更新,不会影响镜像
- 数据卷默认会一直存在,即使容器被删除
在运行容器的时候,创建一个数据卷:
docker run --name="centos7vol" -itd -v /data centos:latest?
进入容器后可以看到data目录已经挂载到容器中,那么容器映射的到本地的数据卷在哪里呢?
docker inspect CONTAINER ID?
通过执行上述命令后,可以查看”Mounts”段中的内容得知映射到本机的目录。
指定本机目录,映射到容器:
docker run --name="centos7test" -itd -v /data:/data centos:latest?
映射单个文件到容器中:
docker run --name="centos7lf" -itd /path/to/filename.tar.gz:/filename.tar.gz centos:latest?
删除数据卷:
docker rm -v CONTAINER ID ?#删除容器同时删除数据卷
数据卷容器:
数据卷容器本质上也是一个容器,只不过数据卷容器提供数据卷供其它容器挂载使用。
创建一个数据卷容器:
docker run --name="datavolumes" -itd -v /data centos:latest?
创建容器使用数据卷容器:
docker run --name="centos7" -itd --volumes-from datavolumes centos:latest?
#数据卷容器并不需要一直运行,在创建数据卷容器的时候也可以将本机卷映射到数据卷容器。