Docker提供了多种方式来实现数据管理和持久化存储,确保容器删除后数据不会丢失。以下是主要方法及其使用场景:
数据卷是Docker推荐的持久化数据方法,由Docker管理,存储在宿主机文件系统中。
# 创建数据卷
docker volume create my_volume
# 查看所有数据卷
docker volume ls
# 查看数据卷详情
docker volume inspect my_volume
# 删除数据卷
docker volume rm my_volume
# 启动容器并挂载数据卷
docker run -d --name my_container -v my_volume:/path/in/container image_name
# 或者让Docker自动创建匿名卷
docker run -d -v /path/in/container image_name
直接将宿主机目录或文件挂载到容器中,适合开发环境。
docker run -d --name my_container -v /host/path:/container/path image_name
仅存储在内存中,适合临时敏感数据。
docker run -d --name my_container --tmpfs /app/tmp image_name
创建一个专门用于存储数据的容器,其他容器通过--volumes-from
共享数据。
# 创建数据卷容器
docker create -v /data --name datastore busybox
# 其他容器使用这个数据卷
docker run --volumes-from datastore --name container1 busybox
docker run --volumes-from datastore --name container2 busybox
version: '3'
services:
web:
image: nginx
volumes:
- web_data:/usr/share/nginx/html
volumes:
web_data:
tmpfs
或加密卷docker volume prune
清理无用卷# 备份
docker run --rm --volumes-from db_container -v $(pwd):/backup busybox tar cvf /backup/backup.tar /dbdata
# 恢复
docker run --rm --volumes-from db_container -v $(pwd):/backup busybox tar xvf /backup/backup.tar
docker volume create --driver local \
--opt type=nfs \
--opt o=addr=192.168.1.1,rw \
--opt device=:/path/to/nfs/share \
nfs_volume
通过合理使用这些数据管理方法,您可以确保Docker容器中的数据安全持久,满足不同场景下的存储需求。