docker postgres
启动一个 Postgres 实例
docker run --name some-postgres -e POSTGRES_PASSWORD=mysecretpassword -d daocloud.io/postgres
这个镜像会导出 Postgres 的 5432 端口, 因此通过标准的link机制就可以方便的访问 Postgres 数据库实例。 容器启动时会通过initdb自动创建默认的 postgres用户和数据库。 数据库postgres是可以被用户,工具和第三方应用程序访问的默认数据库。
参考Postgres 文档。
从应用中连接数据库
docker run --name some-app --link some-postgres:postgres -d application-that-uses-postgres
或者通过 psql
docker run -it --link some-postgres:postgres --rm postgres sh -c 'exec psql -h "$POSTGRES_PORT_5432_TCP_ADDR" -p "$POSTGRES_PORT_5432_TCP_PORT" -U postgres'
环境变量
Postgres 镜像通过一系列环境变量来配置容器,虽然这些环境变量都不是必须的,但是它们会极大的方便您使用镜像。
POSTGRES_PASSWORD
推荐您使用镜像时指定这个环境变量,它用来设置超级用户的密码。 默认的超级用户是由环境变量POSTGRES_USER指定的。 在开始的例子中,超级用户密码被设置为 "mysecretpassword"。
POSTGRES_USER
这个可选的环境变量是搭配POSTGRES_PASSWORD 一起来设置用户名和密码的,它会创建一个指定名称的超级管理员和同名数据库。 如果没有设置这个环境变量,将使用默认值postgres。
如何扩展这个镜像
如果您希望在这个镜像的派生镜像中执行额外的初始化工作,可以在/docker-entrypoint-init.d目录下增加*.sh脚本 (如果该目录不存在则创建目录),在初始化过程调用initdb创建默认的postgres用户和数据库后,它会执行该目录下的所有*.sh脚本完成额外初始化操作再启动服务。
如果您希望在初始化中执行 SQL 语句,强烈建议您使用 Postgres 单用户模式。
您还可以通过一个简单的Dockerfile设置locale,下面这个例子将设置默认的locale为de_DE.utf8:
FROM daocloud.io/postgres:9.4
RUN localedef -i de_DE -c -f UTF-8 -A /usr/share/locale/locale.alias de_DE.UTF-8
ENV LANG de_DE.utf8
因为数据库初始化仅发生在容器启动时,因此您可以在数据库创建前设置语言。
注意
如果容器启动时没有数据库,Postgres 会为您创建一个默认数据库。虽然这是 Postgres 正常的行为,但它意味着在这个阶段数据库是不接受连接请求的。 这个行为会对一些自动化工具产生影响,比如 docker-compose 会同时启动多个容器。
支持的Docker版本
这个镜像在 Docker 1.7.0 上提供最佳的官方支持,对于其他老版本的 Docker(1.0 之后)也能提供基本的兼容。
docker postgres的更多相关文章
- docker postgres使用
1.拉取镜像文件docker pull postgres 2.容器后台进程运行,向外暴露32769端口 docker run -it --name mypostgres -p 32769:5432 - ...
- docker postgres 导出导入数据
导出 -s 选项用来只导出表结构,而不会导出表中的数据 -t 选项用来指定要导出的数据库表 格式:docker exec -ti 容器名 pg_dump -U 用户名 -s -t table_n ...
- Docker环境下升级PostgreSQL
查阅PostgreSQL官方文档可以得知,官方提供了两种方式对数据库进行升级--pg_dumpall与pg_upgrade. pg_dumpall是将数据库转储成一个脚本文件,然后在新版数据库中可以直 ...
- 群晖下 gitea+drone+harbor实现CI/CD 发布到云服务器
常用命令 sudo -i然后输入密码登录root账户(群晖默认只能使用admin账号登陆) vim xxx编辑(编辑是进去之后按i,退出并保存是按esc,然后:wq!再回车) mkdir xx创建文件 ...
- 基于官方postgres docker镜像制作自己的镜像
1.Dockerfile FROM library/postgres MAINTAINER wenbin.ouyang #初始化PostgreSQL ENV POSTGRES_USER root EN ...
- docker运行安装mysql postgres
安装mysql [root@host1 ~]# docker images -a REPOSITORY TAG IMAGE ID CREATED SIZE docker.io/mysql 5.7 4d ...
- 常用命令合集『Postgres、Redis、Docker等等』每周更新,建议收藏备用
Command CMD POSTGRES 进入数据库命令行 psql -U 用户名 -d 数据库名 psql -U example -d exampledb 导出数据库 pg_dump -U 用户名 ...
- Docker命令学习
今天更换腾讯云系统的时候发现了多了个CoreOS,据说是专门运行docker的轻量系统,顺便学习一下docker命令. 1. docker version 显示 Docker 版本信息. 2. doc ...
- Docker 学习之命令详解
1. docker version docker version 显示 Docker 版本信息. 2. docker info docker info 显示 Docker 系统信息,包括镜像和容器数. ...
随机推荐
- [翻译]JUnit 5 用户手册
为了系统的学习下 JUnit 5, 因此开始翻译 JUnit 5 官方用户手册, 谢谢关注! 本手册翻译自 5.0.0-M4 版本. 若感兴趣, 可 star 或 fork 该仓库! GitHub: ...
- jQuery 文档操作 - prependTo() ,appendTo()方法
其他jquery文档操作方法:http://www.w3school.com.cn/jquery/jquery_ref_manipulation.asp jQuery 参考手册 - 文档操作 appe ...
- C#运用反射调用其他程序集中的代码
加载程序集 AssMedicalAdvice = Assembly.LoadFrom(Path.Combine(Environment.CurrentDirectory, "Inscript ...
- webpack 环境搭建基础框架
一.安装babel相关 1,安装依赖 cnpm i -D babel-core babel-loader babel-preset-env babel-preset-stage- babel-plug ...
- 如何將 MySQL 資料庫轉移到 Microsoft SQL Server 與 Azure SQL Database
MySQL 是相當常用之資料庫伺服器,而微軟雲端服務 Microsoft Azure 上 Azure SQL Database 是一個功能強大且經濟實惠的選擇,透過本篇文章,使用 SQL Server ...
- 辛星让mysql跑的更快第一节之优化的方向和数据库建模
近期计划写一套书目,也就是关于mysql的优化的.那么首先在博客上写写,然后整理成pdf的文档的形式,当然也期待各位的关注了.对于mysql的优化是一个比較大的话题.可优化的地方也非常多,大致想了一下 ...
- html块级元素与内联元素的区别
1. 块级元素(block element): 概念理解:如果不用css控制,块级元素在文档流中以一行显示,及它所占的宽度为其父级元素所占的宽度,若超过宽度会重新另起一行显示,高度会随着内容高度的增 ...
- proxy_redirect参数的作用
Nginx的代理功能太完善了,我们看看proxy_redirect参数的作用. 案例说明: 要做一个html.aslibra.com的域名处理很多网站的html内容,当然是后端的服务器了,目录分析 h ...
- unity mac 破解教程
1.安装好软件,我们解压破解包,有下面两个文件,Unity 和Unity_v5.x.ulf,放桌面. 2.打开终端. 3.输入文件地址,注意,我这上边的用户名,记得改成自己的用户名 ...
- python简单处理xml文件
Python若是想从xml里读点信息,用BeautifulSoup可能会容易一点,但是如果要修改xml,BeatifulSoup就搞不定了,其实直接用lxml就好. from lxml import ...