Docker 数据管理
发布时间:2023-06-06 14:17:42 所属栏目:教程 来源:
导读:在使用数据卷进行挂载时,我们只需指定容器中被挂载的目录即可:
docker run -d -it --name busyBox -v mydata:/tmp busyBox
Tips:mydata 是 Docker 数据卷的名称, 不是宿主机的目录或文件,为了避免混淆,指定
docker run -d -it --name busyBox -v mydata:/tmp busyBox
Tips:mydata 是 Docker 数据卷的名称, 不是宿主机的目录或文件,为了避免混淆,指定
|
在使用数据卷进行挂载时,我们只需指定容器中被挂载的目录即可: docker run -d -it --name busyBox -v mydata:/tmp busyBox Tips:mydata 是 Docker 数据卷的名称, 不是宿主机的目录或文件,为了避免混淆,指定当前路径下的目录或文件挂载方式时,源地址需要使用绝对路径。 数据卷挂载到容器后,我们可以通过 docker inspect busyBox 看到容器中数据卷挂载的信息。 数据卷示例 其中,Type代表这是挂载类型为volme卷,Name标识数据卷的名称是我们之前指定的mydata,Source标明在要挂载的数据卷在宿主机的真实路径为/var/lib/docker/volumes/mydata/_data,其中/var/lib/docker/volumes/是一个由Docker统一管理的存放路径,Destination表示挂载到 busyBox 容器内的路径是/tmp。 共用数据卷 通过挂载相同的数据卷,让多个容器能够操作数据卷中的数据,实现容器间的目录共享。 数据卷的命名在 Docker 中是唯一的,让多个容器挂载同一个数据卷, 只需要指定同一个数据卷名称即可。 docker run -d -it --name busyBox -v mydata:/tmp busyBox docker run -d -it --name busyBox2 -v mydata:/tmp busyBox 挂载数据卷时,如果数据卷不存在,Docker 会自动创建,如果同名数据卷已经存在,则直接引用。 这里我们再补充一些常用的数据卷操作: # 删除数据卷docker volume rm mydata# 手动创建数据卷docker volume create mydata# 删除那些没有被容器引用的数据卷docker volume prune Tips:使用 docker rm -f busyBox busyBox2 移除不再使用的容器。 对比两种挂载方式 数据卷 是受控存储,是由 Docker 引擎进行管理维护的。 使用卷,你可以不必处理 uid、SELinux 等各种权限问题,Docker 引擎在建立卷时会自动添加安全规则,以及根据挂载点调整权限。并且可以统一列表、添加、删除。另外,除了本地卷外,还支持网络卷、分布式卷。 挂载目录属于用户自行维护,你就必须手动处理所有权限问题,好处就在于这种方式与宿主机的文件交换更方便一些。 数据卷实际上也是宿主机的一个目录,这个目录由 Docker 管理,利用数据卷可以方便地将数据在多个容器中共享。 按照 Docker 最佳实践的要求,容器不应该向其存储层内写入任何数据,容器存储层要保持无状态化。所有的文件写入操作,都应该使用数据卷或者绑定挂载宿主目录,在这些位置的读写会跳过容器存储层,直接对宿主发生读写,其性能和稳定性更高。 (编辑:汽车网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
