• 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,下面这个例子将设置默认的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 之后)也能提供基本的兼容。

  • 相关阅读:
    ruby之gem update --system 失败
    免费的视频资源
    java的数据类型
    函数parseQuery用于解析url查询参数
    使用闭包的方式实现一个累加函数 addNum
    正则表达式之捕获重用
    JavaScript正则表达式练习
    JavaScript的数组和字符串应用
    Sublime Text3.0的安装
    Oracle的集合运算符
  • 原文地址:https://www.cnblogs.com/SZLLQ2000/p/5433721.html
Copyright © 2020-2023  润新知