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 系统信息,包括镜像和容器数. ...
随机推荐
- python——list访问问题
rect.append({'bbox':[(int(rect1), int(rect2)), (int(rect3), int(rect4))]}) 应这样访问 rect[0]['bbox'][0][ ...
- 一个好用的短连接服务,mark备用
http://to.ly/api.php? longurl=http://www.example.com 当中http://www.example.com 是你所须要转换的长链接地址.经过一个简单的g ...
- JDBC数据库常用操作(mysql)
JDBC英文名称:JavaDataBaseConnectivity中文名称:java数据库连接简称:JDBCJDBC是一种用于执行SQL语句的JavaAPI,可以为多种关系数据库提供统一访问,它由一组 ...
- iOS UIButton文字和图片间距随意调整
代码地址如下:http://www.demodashi.com/demo/11606.html 前记 在开发中,我们经常会遇到这么一种情况,就是一个按钮上面有图片也有文字,但是往往设计并不是我们想要的 ...
- iOS开发-使用代码退出应用程序,带动画。
有时候我们需要使用代码中断程序,如果直接调用exit方法,会使得程序就像是崩溃那样,因此我们应该加上一个动画效果. 例如: AppDelegate *app = [UIApplication shar ...
- 递归函数, 匿名函数, yield from
递归函数 函数执行流程 http://pythontutor.com/visualize.html#mode=edit 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 ...
- javascript跨浏览器事件对象类库
一.前言 学习了javascript事件后,个人总结归纳了跨浏览器事件对象类库,方便以后使用,现分享给大家. 二.事件对象封装 将对浏览器事件对象的操作封装成eventObject.js方便调用 // ...
- Atitit 文件上传 架构设计 实现机制 解决方案 实践java php c#.net js javascript c++ python
Atitit 文件上传 架构设计 实现机制 解决方案 实践java php c#.net js javascript c++ python 1. 上传的几点要求2 1.1. 本地预览2 1.2 ...
- script
实例 链接一个外部脚本文件: <script type="text/javascript" src="myscripts.js"></scri ...
- swoole-1.7.18 版本已发布,支持 PHP7
swoole-1.7.18 版本已发布,支持 PHP7 matyhtf 发布于: 2015年07月23日 (22评) 分享到: 收藏 +16 3月19日,深圳源创会火热报名中,go>> ...