Docker 数据持久化是将容器内的数据保存到宿主机上,以便在容器删除或重启后仍然可以访问这些数据。以下是 Docker 数据持久化的操作步骤:
1. 使用 -v
或 --volume
选项
这是最常用的方法来持久化数据。你可以使用 -v
或 --volume
选项将宿主机的目录或文件系统挂载到容器内。
示例:
-
挂载宿主机目录到容器:
docker run -it -v /path/on/host:/path/in/container ubuntu:latest /bin/bash
在这个例子中,
/path/on/host
是宿主机上的目录,/path/in/container
是容器内的目录。 -
挂载宿主机文件系统到容器:
docker run -it --volume /dev/sda1:/dev/sda1 ubuntu:latest /bin/bash
这个例子中,
/dev/sda1
是宿主机上的磁盘分区。
2. 使用 Docker 数据卷(推荐)
Docker 数据卷是 Docker 提供的一种更高级的数据持久化方法。数据卷由 Docker 管理,提供了更好的隔离性和安全性。
示例:
-
创建数据卷:
docker volume create mydata
-
运行容器并使用数据卷:
docker run -it --volume mydata:/data ubuntu:latest /bin/bash
在这个例子中,
mydata
是创建的数据卷,/data
是容器内的目录。
3. 使用绑定挂载(Bind Mount)
绑定挂载与 -v
选项类似,但它使用的是宿主机的文件系统路径,而不是 Docker 管理的路径。
示例:
-
创建宿主机目录:
mkdir /path/on/host/data
-
运行容器并使用绑定挂载:
docker run -it -v /path/on/host/data:/path/in/container ubuntu:latest /bin/bash
注意事项
- 权限:确保宿主机上的目录或文件系统对 Docker 进程有适当的权限。
- 数据一致性:在容器删除或重启后,数据卷中的数据仍然会保留。
- 性能:数据卷通常比绑定挂载提供更好的性能,因为它们由 Docker 专门管理。
通过以上步骤,你可以轻松地在 Docker 中实现数据持久化。