内容简介:本文风哥教程参考Linux官方文档、Red Hat Enterprise Linux官方文档、Ansible Automation Platform官方文档、Docker官方文档、Kubernetes官方文档和Podman官方文档等内容,详细介绍了相关技术的配置和使用方法。
风哥提示:
本文档介绍Docker存储的配置和管理方法。
Part01-存储驱动
1.1 存储驱动类型
[root@docker ~]# docker info | grep “Storage Driver”
Storage Driver: overlay2
# 查看存储驱动详情
[root@docker ~]# docker info | grep -A 10 “Storage Driver”
Storage Driver: overlay2
Backing Filesystem: xfs
Supports d_type: true
Using metacopy: false
Native Overlay Diff: true
userxattr: false
# Docker存储驱动类型
[root@docker ~]# cat > /root/docker-storage.txt << 'EOF'
Docker存储驱动类型
=================
1. overlay2
- 推荐的存储驱动
- 性能优异
- 支持xfs/ext4
2. devicemapper
- 块级存储
- 适合生产环境
- 支持精简配置
3. btrfs
- 快照支持
- 写时复制
- 需要btrfs文件系统
4. zfs
- 高级功能
- 数据完整性
- 需要zfs文件系统
5. vfs
- 兼容性好
- 性能较差
- 不推荐生产使用
EOF
Part02-数据卷管理
2.1 数据卷操作
[root@docker ~]# docker volume create fgedu-data
fgedu-data
# 查看数据卷列表
[root@docker ~]# docker volume ls
DRIVER VOLUME NAME
local fgedu-data
# 查看数据卷详情
[root@docker ~]# docker volume inspect fgedu-data
[
{
“CreatedAt”: “2026-04-04T05:30:00Z”,
“Driver”: “local”,
“Labels”: null,
“Mountpoint”: “/var/lib/docker/volumes/fgedu-data/_data”,
“Name”: “fgedu-data”,
“Options”: null,
“Scope”: “local”
}
]
# 使用数据卷运行容器
[root@docker ~]# docker run -d –name fgedu-web \
-v fgedu-data:/data \
nginx:latest
abc123def456789012345678901234567890123456789012345678901234
# 挂载主机目录
[root@docker ~]# docker run -d –name fgedu-app \
-v /opt/fgedu/data:/data \
-v /opt/fgedu/logs:/var/log/nginx \
nginx:latest
def456789012345678901234567890123456789012345678901234
# 只读挂载
[root@docker ~]# docker run -d –name fgedu-config \
-v /opt/fgedu/config:/etc/nginx/conf.d:ro \
nginx:latest
abc123def456789012345678901234567890123456789012345678901234
# 使用–mount参数
[root@docker ~]# docker run -d –name fgedu-db \
–mount type=volume,src=fgedu-db-data,dst=/var/lib/mysql \
mysql:8.0
def456789012345678901234567890123456789012345678901234
# 创建带标签的数据卷
[root@docker ~]# docker volume create \
–label env=production \
–label app=fgedu \
fgedu-prod-data
fgedu-prod-data
# 删除数据卷
[root@docker ~]# docker volume rm fgedu-data
fgedu-data
# 清理未使用的数据卷
[root@docker ~]# docker volume prune
WARNING! This will remove all local volumes not used by at least one container.
Are you sure you want to continue? [y/N] y
Deleted Volumes:
– fgedu-data
Total reclaimed space: 0B
Part03-绑定挂载
3.1 绑定挂载配置
[root@docker ~]# mkdir -p /opt/fgedu/{data,logs,config}
[root@docker ~]# docker run -d –name fgedu-web \
–mount type=bind,src=/opt/fgedu/config,dst=/etc/nginx/conf.d \
–mount type=bind,学习交流加群风哥QQ113257174src=/opt/fgedu/data,dst=/usr/share/nginx/html \
–mount type=bind,src=/opt/fgedu/logs,学习交流加群风哥微信: itpux-comdst=/var/log/nginx \
nginx:latest
abc123def456789012345678901234567890123456789012345678901234
# tmpfs挂载
[root@docker ~]# docker run -d –name fgedu-cache \
–mount type=tmpfs,dst=/tmp,tmpfs-size=100m \
nginx:latest
def456789012345678901234567890123456789012345678901234
# 查看容器挂载信息
[root@docker ~]# docker inspect fgedu-web | grep -A 20 “Mounts”
“Mounts”: [
{
“Type”: “bind”,
“Source”: “/opt/fgedu/config”,
“Destination”: “/etc/nginx/conf.d”,
“Mode”: “”,
“RW”: true,
“Propagation”: “rprivate”
},
{
“Type”: “bind”,
“Source”: “/opt/fgedu/data”,
“Destination”: “/usr/share/nginx/html”,
“Mode”: “”,
“RW”: true,
“Propagation”: “rprivate”
}
]
# 数据卷容器
[root@docker ~]# docker create –name fgedu-data-container \
-v /opt/fgedu/data:/data \
-v /opt/fgedu/logs:/logs \
rockylinux:9.3
abc123def456789012345678901234567890123456789012345678901234
# 使用数据卷容器
[root@docker ~]# docker run -d –name fgedu-web \
–volumes-from fgedu-data-container \
nginx:latest
def456789012345678901234567890123456789012345678901234
# 备份数据卷
[root@docker ~]# docker run –rm \
-v fgedu-data:/data \
-v /backup:/backup \
rockylinux:9.3 \
tar czf /backup/fgedu-data-backup.tar.gz /data
# 恢复数据卷
[root@docker ~]# docker run –rm \
-v fgedu-data:/data \
-v /backup:/backup \
rockylinux:9.3 \
tar xzf /backup/fgedu-data-backup.tar.更多视频教程www.fgedu.net.cngz -C /
- 使用数据卷持久化数据
- 定期备份重要数据
- 配置存储配额限制
- 监控存储使用情况
- 使用命名卷便于管理
本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html
