开发者社区> 轩墨> 正文

备份基于Docker的PostgreSQL数据库

简介: 本文讲的是,【编者的话】本文属于基础入门类文章,作者介绍了如何备份基于Docker的PostgreSQL数据库。通过本文你可以学习到Docker容器的构建以及运行命令,并带你复习Docker容器的基本原理。
+关注继续查看
本文讲的是,【编者的话】本文属于基础入门类文章,作者介绍了如何备份基于Docker的PostgreSQL数据库。通过本文你可以学习到Docker容器的构建以及运行命令,并带你复习Docker容器的基本原理。

我发现,很多初学者都很关心Docker能否解决现有的一些问题,当然之前的解决方案也仍可以用。所以这篇文章的主题是使用Docker备份你的关系型数据库。我会通过具体的例子来介绍如何使用Docker来备份PostgreSQL。

如果你有一个运行在Docker中的PostgreSQL服务,我想说能把这两个非常酷的软件结合起来真的很赞。但是你是一个聪明的人,你知道你需要备份自己的数据库。但是怎么做了?PostgreSQL运行在Docker中,外界无法访问容器内的数据。

简单来说,你可以在PostgreSQL实例上运行pg_dump。具体到现在的问题,你可以用三种方式来运行:

第一,在容器内。根据你的Docker版本,使用nsenterdocker exec在容器内运行Shell命令,并将dump的数据共享到volume:
docker exec postgres pg_dump -h db -f /shared/backup.sql

但我们可以做的更好,理想的流程是无需在容器内启动Shell即可直接连接到PostgreSQL。有两种方式可以实现:

其一,可以使用容器化的方式。创建一个pg_dump容器,并在运行时将其连接到PostgreSQL容器。下面是pg_dump容器的Dockerfile:
FROM debian:wheezy

RUN apt-get update -y && \
apt-get install -y postgresql-client && \
apt-get clean -y

ENTRYPOINT ["/usr/bin/pg_dump"]

使用docker build命令来构建:
$ docker build -t pg_dump - < Dockerfile

注意:并不是一定要构建一个运行pg_dump的容器,你可以直接在PostgreSQL的容器中包含pg_dump容器的功能。我们这里只是为了练习。
构建完毕并运行:
$ docker run -it --link postgres:db pg_dump -h db

另外一个解决方案是Docker暴露容器的5342端口,我们直接运行pg_dump命令。

原文链接:Backuping PostgreSQL with Docker(翻译:采菊篱下 审校:李颖杰)

原文发布时间为:2015-01-04
本文作者:采菊篱下 
本文来自云栖社区合作伙伴DockerOne,了解相关信息可以关注DockerOne。
原文标题:备份基于Docker的PostgreSQL数据库

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
QGS
(openEuler21.03-x86)docker安装DM8数据库-DBeaver21.3连接
记(openEuler21.03-x86)docker安装DM8数据库-DBeaver21.3连接
31 0
Docker部署安装MongoDB数据库
Docker部署安装MongoDB数据库
123 0
ubuntu docker 安装oracle数据库产生的问题
ubuntu docker 安装oracle数据库产生的问题
78 0
Docker Compose 部署 PostgreSQL 单机版——基于Ubuntu (含有pgadmin)
Docker Compose 部署 PostgreSQL 单机版——基于Ubuntu (含有pgadmin)
58 0
Docker 安装 PostgreSQL 单机版——基于Ubuntu
Docker 安装 PostgreSQL 单机版——基于Ubuntu
100 0
Docker 版数据库
Docker 版数据库
18 0
Docker 版数据库
Docker 版数据库
11 0
Docker-10:Docker安装PostgreSQL
通过容器化Docker 安装 postgrel
402 0
使用 Bitnami PostgreSQL Docker 镜像快速设置流复制集群
使用 Bitnami PostgreSQL Docker 镜像快速设置流复制集群
195 0
docker compose 一键启动销毁MySQL postgresql redis
Compose 是用于定义和运行多容器 Docker 应用程序的工具。 通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务。
204 0
+关注
文章
问答
文章排行榜
最热
最新
相关电子书
更多
5日docker训练营(四).ppt
立即下载
5日docker训练营(三).ppt
立即下载
4天实战 轻松玩转docker
立即下载