插件窝 干货文章 docker容器重启后数据会丢吗

docker容器重启后数据会丢吗

容器 数据 重启 挂载 75    来源:    2025-05-03

Docker容器重启后数据是否会丢失

Docker容器重启后数据是否丢失取决于数据的存储位置和方式:

数据会丢失的情况

  1. 容器内部存储的数据

    • 默认情况下,容器内创建的文件都存储在可写容器层(writable container layer)
    • 这些数据在容器重启后会保留,但如果容器被删除(rm)则会丢失
  2. 未挂载的临时数据

    • 使用docker run --rm选项启动的临时容器,重启后会被完全删除

数据不会丢失的情况

  1. 使用数据卷(Volumes)

    • docker volume create myvolume
    • docker run -v myvolume:/path/in/container
    • 这是Docker推荐的数据持久化方式
  2. 绑定挂载(Bind Mounts)

    • docker run -v /host/path:/container/path
    • 直接挂载主机目录到容器
  3. tmpfs挂载(内存文件系统)

    • docker run --tmpfs /tmp
    • 数据只保存在内存中,容器重启会丢失,但主机重启不影响

最佳实践建议

  • 对于重要数据,始终使用数据卷或绑定挂载
  • 使用docker-compose时可以方便地定义持久化存储
  • 对于数据库等有状态服务,必须配置持久化存储
version: '3'
services:
  db:
    image: mysql
    volumes:
      - db_data:/var/lib/mysql
volumes:
  db_data:

这样即使容器重启或重建,数据也不会丢失。