您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

如何在Docker中处理持久性存储(例如数据库)

如何在Docker中处理持久性存储(例如数据库)

使用体积API

docker volume create --name hello
docker run -d -v hello:/container/path/for/volume container_image my_command

这意味着必须放弃仅数据的容器模式,而使用新的卷。

实际上,卷API只是实现数据容器模式的一种更好的方法

如果您使用-v volume_name:/container/fs/pathDocker 创建容器,则会自动为您创建一个命名卷,该卷可以:

新的卷API添加一个有用的命令,可用于标识悬空的卷:

docker volume ls -f dangling=true

然后通过名称删除它:

docker volume rm <volume name>

正如@mpugach在注释中强调的那样,您可以使用一个漂亮的衬里摆脱所有悬空的体积:

docker volume rm $(docker volume ls -f dangling=true -q)
# Or using 1.13.x
docker volume prune

最适合生产的方法是使用 。

仅数据容器在准系统图像上运行,除了暴露数据量外,实际上不执行任何操作。

然后,您可以运行任何其他容器来访问数据容器卷:

docker run --volumes-from data-container some-other-container command-to-execute

此博客文章中,对所谓的 有很好的描述,阐明了 具有 要点。

Docker文档现在将 的定义描述 模式。

以下是Docker 1.8.x及以下版本的备份/还原过程。

sudo docker run --rm --volumes-from DATA -v $(pwd):/backup busy@R_488_2419@ tar cvf /backup/backup.tar /data

# Create a new data container
$ sudo docker run -v /data -name DATA2 busy@R_488_2419@ true
# untar the backup files into the new container?s data volume
$ sudo docker run --rm --volumes-from DATA2 -v $(pwd):/backup busy@R_488_2419@ tar xvf /backup/backup.tar
data/
data/sven.txt
# Compare to the original container
$ sudo docker run --rm --volumes-from DATA -v `pwd`:/backup busy@R_488_2419@ ls /data
sven.txt

这是优秀的Brian Goff的一篇不错的文章,解释了为什么对容器和数据容器使用相同的图像会很好。

其他 2022/1/1 18:18:15 有628人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶