备份基于Docker的PostgreSQL数据库-阿里云开发者社区

开发者社区> 轩墨> 正文

备份基于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数据库

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

相关文章
MySQL---数据库从入门走向大神系列(三)-修改数据库编码/DOS窗口编码
如何查看与修改数据库的编码,如何修改dos窗口的显示编码,都在本篇详细讲解。 查看当前数据库的编码: show variables where variable_name like 'character%'; 如果出现了中文乱码,我们只要看: character_set_client —客户端的编码 character_set_connection —连接的编码(传输时的编码) character_set_results — 最后的输出编码 只要保证这三个编码是相同的,且编码集有中文,中文就不会出现乱码。
1174 0
Aerospike数据库服务器被发现三个严重安全漏洞
本文讲的是Aerospike数据库服务器被发现三个严重安全漏洞,Aerospike数据库是一个高性能的,开源NoSQL数据库,但是,思科公司Talos小组的安全专家却发现了Aerospike数据库服务器一系列安全缺陷和漏洞。
1739 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
4615 0
PostgreSQL 数据库实例只读锁定(readonly) - 硬锁定,软锁定,解锁
标签 PostgreSQL , 只读 , 锁定 , readonly , recovery.conf , 恢复模式 , pg_is_in_revoery , default_transaction_read_only 背景 在一些场景中,可能要将数据库设置为只读模式。 例如, 1、云数据库,当使用的容量超过了购买的限制时。切换到只读(锁定)模式,确保用户不会用超。 2、业务上需要对
2090 0
Windows DOS窗体下Oracle 数据库的导入导出命令
oracle 用户创建 数据库的导入导出imp/exp 可以在SQLPLUS.EXE或者DOS(命令行)中执行 执行环境:可以在SQLPLUS.EXE或者DOS(命令行)中执行, DOS中可以执行时由于 在oracle 8i 中 安装目录ora81BIN被设置为全局路径, 该目录下有EXP.EXE与IMP.EXE文件被用来执行导入导出。 创建用户 给用户增加导入数据权限的操作
2028 0
VC与ADO数据库操作
      VC与ADO数据库操作     学研部的同志们,大家好! 想开一次学习会,实习时间冲突了,只好把文档发给大家看了。重点推荐李振龙的BMP读图教程! 尤其是大三GIS班的同志,注意了,可能实习用得上的!     一、ADO简介ADO(ActiveX Data Object)是...
1029 0
备份基于Docker的PostgreSQL数据库
本文讲的是,【编者的话】本文属于基础入门类文章,作者介绍了如何备份基于Docker的PostgreSQL数据库。通过本文你可以学习到Docker容器的构建以及运行命令,并带你复习Docker容器的基本原理。
2727 0
+关注
2351
文章
701
问答
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载