Tag: postgresql

Docker容器的IP地址差异

在Docker入门教程https://docs.docker.com/get-started/part2/#share-your-image中 ,容器启动时使用docker run -p 4000:80 friendlyhello ,容器服务器可以从http://localhost:4000访问http://localhost:4000 ,如预期。 但是当我试图在容器中运行Postgres时,使用Dockerfile FROM postgres ENV POSTGRES_USER=user-ms ENV POSTGRES_PASSWORD=12345 和命令docker run -p 5432:5432 user-db ,服务器不能在本地主机访问,只有在psql -h 172.17.0.2 。 为什么这两种情况不一样? 根据https://docs.docker.com/engine/userguide/networking/ ,默认情况下,它们都应该在桥接networking中,使用172.17.0.1网关。 第一个例子是如何在本地主机上访问?

如何使用dockerized PostgreSQL的repmgr?

我正在尝试使用复制和自动故障转移来创buildPostgresql安装程序。 我希望它是可重用,可扩展和可移植的,所以我试图使用docker来运行Postgres。 我也不想重新发明轮子,所以我试图使用repmgr,因为它是设置postgres复制时推荐的工具。 在第一台机器上,我使用docker-compose和简单的Dockerfile启动了主节点。 然后我添加了bash脚本,在容器启动后运行。 它看起来像主设置正确。 然后在第二台机器上,我尝试运行待机。 我开始在docker工作postgres和实验。 正如我们可以在repmgr github repo上阅读的那样 ,为了运行standby,我需要使用内部使用pg_basebackup的repmgr命令克隆master。 Pg_basebackup不会让我把数据库克隆到非空目录(pgdata),所以我需要在克隆之前删除由dockerized postgres创build的pgdata。 当我这样做时,容器就死了,因为当然唯一的服务,postgres,没有文件死亡。 所以我不能运行repmgr命令,因为没有容器来运行它:) 所以我试着创build另一个Dockerfile只有standbies。 内部pgdata被删除,然后repmgr克隆主,然后postgres正常启动。 没有错误。 但是,当我login到主机,并validation复制是否正在运行 – 它不是。 是否有可能为dockerized postgres运行repmgr? 如果是这样,怎么样? 我究竟做错了什么? 如果没有,我怎样才能创buildpostgres集群复制,而无需手动configuration每个服务器? 你知道,不把服务器当宠物,而是当作牛等:) 我使用和创build的文件:docker-compose.yml(主节点和备节点): version: '3' services: db: build: context: . volumes: – ${DATABASE_STORAGE_PATH}:/var/lib/postgresql/data env_file: – .env environment: – PGDATA=/var/lib/postgresql/data/pgdata ports: – ${DB_PORT}:5432 主Dockerfile: FROM postgres:9.6.4 # install repmgr RUN […]

使用wal-e从WAL备份postgresql docker镜像

我有一个安装了沃尔 – 安装和工作的图像。 它成功地在backup-push发送我的WAL到远程驱动器。 但是,当我运行backup-fetch ,我得到的错误 wal_e.main INFO MSG: starting WAL-E DETAIL: The subcommand is "backup-fetch". STRUCTURED: time=2017-09-05T07:45:24.721673-00 pid=3839 wal_e.main ERROR MSG: attempting to overwrite a live data directory DETAIL: Found a postmaster.pid lockfile, and aborting HINT: Shut down postgres. If there is a stale lockfile, then remove it after being very sure postgres is […]

添加postgres Codenvy堆栈食谱(dockerfile)

我是一个新的Codenvy用户。 我正在尝试在Codenvy中构build一个运行postgres的“Stack”。 我正在使用以下配方创build我的堆栈。 (使用https://github.com/eclipse/che-dockerfiles/blob/master/recipes/ubuntu_jdk8/Dockerfile作为起点) 这个配方创build了一个包含Eclipse Che,Maven和Tomcat的Codenvy服务器。 我需要添加Ant和Postgres到这个configuration。 我能够添加ant。 我目前的挑战是添加Postgres到这个configuration。 这是我目前的食谱。 FROM eclipse/stack-base:ubuntu EXPOSE 4403 8000 8080 9876 22 LABEL che:server:8080:ref=tomcat8 che:server:8080:protocol=http che:server:8000:ref=tomcat8-debug che:server:8000:protocol=http che:server:9876:ref=codeserver che:server:9876:protocol=http ENV MAVEN_VERSION=3.3.9 \ ANT_VERSION=1.10.1 \ JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64 \ TOMCAT_HOME=/home/user/tomcat8 \ TERM=xterm ENV M2_HOME=/home/user/apache-maven-$MAVEN_VERSION ENV ANT_HOME=/home/user/ant-$ANT_VERSION ENV PATH=$JAVA_HOME/bin:$M2_HOME/bin:$ANT_HOME/bin:$PATH RUN mkdir /home/user/tomcat8 /home/user/apache-maven-$MAVEN_VERSION $ANT_HOME && \ wget -qO- "https://www.apache.org/dist/ant/binaries/apache-ant-$ANT_VERSION-bin.tar.gz" | tar -zx –strip-components=1 […]

将瓶子应用程序连接到在docker容器中运行的postgresql服务

我有一个使用PostgreSQL作为后端数据库的Flask应用程序。 我已经安装了Postgresql作为dockerized服务(使用docker-compose)。 我现在在我的机器上成功运行postgresql。 我input了所有相关的详细信息以连接到数据库(用户,pwd,dbname,服务器地址,服务器端口),但无法连接。 当我尝试连接到数据库时,在Flask(来自psycopg2)中抛出一个exception: conn = _connect(dsn, connection_factory=connection_factory, **kwasync) OperationalError: could not connect to server: No such file or directory Is the server running locally and accepting connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"? 当我检查postgresql是否正在运行时,我收到以下消息: $ service postgresql status ● postgresql.service Loaded: not-found (Reason: No such file or directory) Active: inactive (dead) 在阅读了关于Docker和PostgreSQL的更多信息后,我开始理解为什么我不能连接 – 因为postgresql运行在自己的容器中 […]

Postgres / Postgis Dockerfile容器无法绑定IPv6套接字错误

我熟悉Docker并试图创build一个Postgres和各种扩展用于开发的容器。 这个想法是其他开发人员可以在本地机器上设置容器并开始开发。 为此我创build了下面的Dockerfile,它build立在Postgis docker镜像之上,并安装了一些额外的扩展。 FROM mdillon/postgis:9.6 RUN apt-get update RUN apt-get -y install python3 postgresql-plpython3-9.6 RUN apt-get clean && \ rm -rf /var/cache/apt/* /var/lib/apt/lists/* EXPOSE 5432:5432 然后我用命令运行Dockerfile定义,并得到以下输出到我的terminal: docker run –name dockerthing -e POSTGRES_PASSWORD=mysecretpassword -p 5432:5432 dockerthing The files belonging to this database system will be owned by user "postgres". This user must also own the […]

postgresql亲和 – docker服务swarm

我是docker工人,我有一个问题。 我想在Docker Swarm中的两个节点之间获得亲和性和交换数据。 (示例ip) 我有一个经理: 192.168.10.1 和工人: 192.168.10.2 他们已经连接。 我已经写了docker-compose.yml文件来用postgres DB创build新的服务,并且经理yml文件如下所示: version: '3.1' services: db: image: postgres environment: POSTGRES_DB: My_DB POSTGRES_USER: My_DB_User POSTGRES_PASSWORD: My_DB_Password PG_DATA: /var/lib/postgresql/data/pgdatai deploy: placement: constraints: – node.role == manager – node.labels.type == queue adminer: image: adminer ports: – 8080:8080 和工人: version: '3.1' services: db: image: postgres environment: POSTGRES_DB: My_DB POSTGRES_USER: My_DB_User […]

无法连接到Postgres的数据库 – docker群

我有困难通过IntelliJ连接到我的postgresql。 我正在使用这个docker-compose文件: version: '3' services: db: image: postgres environment: POSTGRES_DB: postgres POSTGRES_USER: postgres_user POSTGRES_PASSWORD: postgres_password PG_DATA: /var/lib/postgresql/data/pgdatai expose: – "5432" ports: – "5432" volumes: – /var/lib/postresql/db/ deploy: placement: constraints: – node.hostname == vmAPT1 我把这个命令放在里面: docker stack deploy –compose-file docker-compose.yml vmAPT1 当我使用: docker ps 我懂了: CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 31d1337a142c postgres:latest "docker-entrypoint…" […]

PostgreSQL 9.6 – 无法连接到从自定义模板数据库创build的数据库

我创build了一个数据库foo ,我正在使用它作为模板数据库来创build其他数据库。 我正在一个Docker容器中运行所有的PostgreSQL(不知道这是否与手头的问题有关)。 这是(截断的)SQL CREATE DATABASE foo WITH ENCODING 'UTF8' template0; \i db_schema_foo.sql — Create extensions — Initialise db with data etc … CREATE DATABASE foobar TEMPLATE foo; (截断)控制台输出: CREATE DATABASE You are now connected to database "foo" as user "postgres". CREATE TABLE CREATE INDEX CREATE TABLE CREATE INDEX CREATE TABLE … CREATE INDEX CREATE […]

“pg_xlog / RECOVERYHISTORY”:权限被拒绝Google Cloud Instance

我创build了这个基本上是postgres 9.5 + pghoard的 Docker Image,它会自动创build一个数据库备份(基于configuration文件),因为pghoard服务器正在运行它自动retore一个basebackup,如果我运行docker docker run但是当我在Google Cloud实例中复制同一个进程时,出现错误 root@postgres-2499481557-3zv8d:/var/lib/postgresql/data/pgdata# docker-entrypoint.sh postgres LOG: database system was shut down in recovery at 2017-09-29 14:54:01 UTC LOG: restored log file "00000002.history" from archive FATAL: could not open file "pg_xlog/RECOVERYHISTORY": Permission denied LOG: startup process (PID 62) exited with exit code 1 LOG: aborting startup due to startup […]