备份 docker 卷

安藤

我在 Ubuntu 机器上创建了一个单独的卷,目的是存储 docker 卷和持久化数据。到目前为止,我已经在主机上为两个服务(jira 和 postgres)创建了卷,我打算在异地备份。docker-compose像这样使用

邮局:

volumes:
   - /var/dkr/pgdata:/var/lib/postgresql/data

对于吉拉:

volumes:
   - /var/dkr/jira:/var/atlassian/jira

我的想法是我可以将/var/dkr文件夹同步到一个临时位置,tar然后将其发送到 S3。既然我已经阅读了更多有关托管卷过程的信息,我担心当我从备份中恢复时,最终可能会弄乱服务的 GID 和 UID。

我的问题是 - docker 是否在较新版本中解决了这个问题(我使用的是最新版本)。采取这种方法安全吗?备份持久卷的更好方法是什么?

米奇

容器和主机之间的 uid/gid 映射问题没有神奇的解决方案。它需要由 Linux 内核中的文件系统驱动程序实现,这就是 NFS 和一些 VM 文件系统映射的工作原理。对于“绑定”挂载,强制使用 uid/gid 不是 Linux 的一个选项,Docker 只是在此基础上提供了一个易于使用的界面。

对于您的备份,请确保 uid/gid 是您备份的一部分(默认情况下 tar 会这样做)。还要确保在您的容器中使用的 uid/gid 在图像中定义或在您的docker run或撰写文件中指定为静态值只要您不依赖于特定于主机的 uid/gid,并恢复保留 uid/gid(默认为 root 的 tar),您就不会遇到任何问题。

最坏的情况是,您运行类似find /var/dkr -uid $old_uid -exec chown $new_uid {} \;更改 UID 的操作。tar 命令还有用于在提取时更改 uid/gid 的选项(有关更多详细信息,请参阅手册页)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章