博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
备份基于Docker的PostgreSQL数据库
阅读量:6683 次
发布时间:2019-06-25

本文共 1155 字,大约阅读时间需要 3 分钟。

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


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


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


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


第一,在容器内。根据你的Docker版本,使用
docker 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:wheezyRUN apt-get update -y && \apt-get install -y postgresql-client && \apt-get clean -yENTRYPOINT ["/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
命令。


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

转载地址:http://dkoao.baihongyu.com/

你可能感兴趣的文章
目录管理和文件管理
查看>>
广播事件的两种类型。
查看>>
cmd进入控制Mysql&出现乱码的问题
查看>>
POJ 2407 Relatives 题解《挑战程序设计竞赛》
查看>>
关于那些最好玩的户外APP合集下(适合资深驴友、牛逼设计狮、装逼攻城狮)...
查看>>
实现一个日期类
查看>>
mysql实时记录客户端提交的sql语句
查看>>
多线程学习笔记(五)
查看>>
pyspider爬虫学习-教程3-Render-with-PhantomJS.md
查看>>
107个常用Javascript语句
查看>>
关联表更新
查看>>
Java递归拷贝文件夹
查看>>
从Java到C++——从union到VARIANT与CComVariant的深层剖析
查看>>
java使用jeids实现redis2.6的list操作(3)
查看>>
Android简单框架会用到的基类(2)
查看>>
flask sqlalchemy多个外键引用同张表报错sqlalchemy.exc.AmbiguousForeignKeysError
查看>>
在 CentOS6 上安装 Python 2 & 3
查看>>
svnserver配置文件详解
查看>>
Mybatis之动态SQL语句
查看>>
文件上传利器SWFUpload使用指南
查看>>