启动一个 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,下面这个例子将设置默认的localede_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的更多相关文章

  1. docker postgres使用

    1.拉取镜像文件docker pull postgres 2.容器后台进程运行,向外暴露32769端口 docker run -it --name mypostgres -p 32769:5432 - ...

  2. docker postgres 导出导入数据

    导出 -s  选项用来只导出表结构,而不会导出表中的数据 -t   选项用来指定要导出的数据库表 格式:docker exec -ti 容器名 pg_dump -U 用户名 -s -t table_n ...

  3. Docker环境下升级PostgreSQL

    查阅PostgreSQL官方文档可以得知,官方提供了两种方式对数据库进行升级--pg_dumpall与pg_upgrade. pg_dumpall是将数据库转储成一个脚本文件,然后在新版数据库中可以直 ...

  4. 群晖下 gitea+drone+harbor实现CI/CD 发布到云服务器

    常用命令 sudo -i然后输入密码登录root账户(群晖默认只能使用admin账号登陆) vim xxx编辑(编辑是进去之后按i,退出并保存是按esc,然后:wq!再回车) mkdir xx创建文件 ...

  5. 基于官方postgres docker镜像制作自己的镜像

    1.Dockerfile FROM library/postgres MAINTAINER wenbin.ouyang #初始化PostgreSQL ENV POSTGRES_USER root EN ...

  6. docker运行安装mysql postgres

    安装mysql [root@host1 ~]# docker images -a REPOSITORY TAG IMAGE ID CREATED SIZE docker.io/mysql 5.7 4d ...

  7. 常用命令合集『Postgres、Redis、Docker等等』每周更新,建议收藏备用

    Command CMD POSTGRES 进入数据库命令行 psql -U 用户名 -d 数据库名 psql -U example -d exampledb 导出数据库 pg_dump -U 用户名 ...

  8. Docker命令学习

    今天更换腾讯云系统的时候发现了多了个CoreOS,据说是专门运行docker的轻量系统,顺便学习一下docker命令. 1. docker version 显示 Docker 版本信息. 2. doc ...

  9. Docker 学习之命令详解

    1. docker version docker version 显示 Docker 版本信息. 2. docker info docker info 显示 Docker 系统信息,包括镜像和容器数. ...

随机推荐

  1. SSM&SSH项目中 springmvc 乱码问题解决

    需要在web.xml文件中配置过滤器: <!-- 过滤器 过滤乱码 --> <filter> <filter-name>characterEncodingFilte ...

  2. (一)EasyUI 使用——基本概念

    1. EasyUI是什么 EasyUI是一种第三方组织开发的一款基于jQuery的,简单易用的,功能强大的WEB[后台前端]JavaScript现成的组件库. 2.  JavaScript,AJAX, ...

  3. sql 写法注意点

    a.CRUD(create,read,update,delete)操作方法写法格式 字段格式要个数据库表字段一致,字母不区分大小写,支持下划线. 例如: screenName or scrEenNam ...

  4. velcoity使用说明:foreach指令

    http://blog.csdn.net/madding/article/details/6641020当在velocity中需要显示一个列表信息,我们会用foreach循环输出, 要求: 假如现在需 ...

  5. 我也来谈谈使用Zen Coding快速开发html和css原理

    zen coding 是一种仿css选择器的语法来快速开发html和css的开源项目.现已更名为Emmet.可以到github上下载拜读.在这个都想偷懒的世界里,此方法可以极大的缩短开发人员的开发时间 ...

  6. shell脚本与mongo交互

    1.mongo提供*.js的方法供linux调用 #!/bin/bash /usr/local/mongodb/bin/mongo hostname/dbname xxx.js xxx.js 内容如下 ...

  7. nodejs 获取指定路径下所有的文件夹名

    示例:获取 ./components 下所有的文件夹名称 let components = [] const files = fs.readdirSync('./components') files. ...

  8. C/C++ 错误笔记-在给结构体中的指针赋值时,要注意该指针是否已指向内存空间

    先来看下面的例子: #include <stdlib.h> #include <string.h> #include <stdio.h> #pragma warni ...

  9. awk之随机函数rand()和srand()

    awk之随机函数rand()和srand() 分类: LINUX 文件: abcdefg ...... 现在想要随机抽取5列组成下面的内容,允许重复: cffab ...... awk -F '' ' ...

  10. linux跨主机复制文件

    scp -r billing@10.200.171.111:/billdata2/user/yanhm/redis/* /newboss/billing/user/aabb 其中: 10.200.17 ...