Skip to content

持久化存储

容器默认使用临时文件系统,容器删除后数据也会丢失。使用卷 (Volumes) 和绑定挂载可以实现数据持久化。

卷 (Volumes)

卷是 Docker 管理的持久化存储,独立于容器的生命周期。

创建卷

sh
docker volume create my-volume

使用卷

sh
docker run -d \
  --name my-app \
  -v my-volume:/data \
  nginx:latest

查看卷

sh
# 列出所有卷
docker volume ls

# 查看卷详情
docker volume inspect my-volume

绑定挂载 (Bind Mount)

绑定挂载将主机文件系统路径直接挂载到容器中。

sh
docker run -d \
  --name my-app \
  -v /host/path:/container/path \
  nginx:latest

注意

绑定挂载会直接访问主机文件系统,可能存在安全风险。生产环境建议使用卷 (Volumes)。

Docker Compose 示例

yaml
version: '3.8'

services:
  db:
    image: postgres:15
    volumes:
      - db_data:/var/lib/postgresql/data
    environment:
      POSTGRES_PASSWORD: password

volumes:
  db_data:

备份与恢复

备份卷

sh
docker run --rm \
  -v my-volume:/data \
  -v $(pwd):/backup \
  alpine tar czf /backup/backup.tar.gz /data

恢复卷

sh
docker run --rm \
  -v my-volume:/data \
  -v $(pwd):/backup \
  alpine tar xzf /backup/backup.tar.gz -C /

由 BSFC Tech 提供技术支持