Tag: postgresql

如何将Postresql移动到Docker中的RAM磁盘?

我想运行Docker镜像postgres:9 ,停止Postgres,将它移动到/dev/shm ,然后重新启动它,所以我可以非常快地运行我的应用程序testing。 但是当我试图阻止Postgres在容器中使用postgres或pg_ctl我得到告诉cannot be run as root 。 由于所有的Docker容器以root用户身份login,我可以做些什么来运行Postgres命令? 在重新启动之前,需要将哪些文件夹移动到/dev/shm ? 如果你想尝试这个命令来启动容器docker run -it postgres:9 bash cd /usr/lib/postgresql/9.6/bin ./pg_ctl stop

使用Docker的Postgres:Postgres在持久化数据时无法加载

我是Postgres的新手。 我更新了我使用的Dockerfile,并在其上成功安装了Postgresql。 (我的图像运行Ubuntu 16.04,我使用的是Postgres 9.6。) 一切工作正常,直到我试图将数据库移动到一个与docker-compose一个Volume (这是用cp -R /var/lib/postgresql /somevolume/复制容器的文件夹后)。 问题是Postgres一直在崩溃,正如supervisord所见证的那样: 2017-07-26 18:55:38,346 INFO exited: postgresql (exit status 1; not expected) 2017-07-26 18:55:39,355 INFO spawned: 'postgresql' with pid 195 2017-07-26 18:55:40,430 INFO success: postgresql entered RUNNING state, process has stayed up for > than 1 seconds (startsecs) 2017-07-26 18:55:40,763 INFO exited: postgresql (exit status 1; […]

Docker&Postgres:无法绑定已经在使用的tcp 0.0.0.0:5432地址

问题 我试图在我的Mac上的docker容器中启动postgres,但我不断收到以下错误消息 docker:来自守护程序的错误响应:驱动程序无法编程端点postgres上的外部连接(8392b9e5cfaa28f480fe1009dee461f97e82499726f4afc4e916358dd2d2f61e):启动userland代理时出错:无法绑定tcp 0.0.0.0:5432地址已在使用中。 我在本地安装了postgres,但是我停止了它并运行 pg_ctl status 回报 pg_ctl:没有服务器正在运行 我已经跑了以下检查5432上运行的是什么 lsof -i tcp:5432 & netstat -anp tcp | grep 5432 并没有什么是在港口上运行。 版本 Mac – OS X El Capitan版本10.11.2 PostgreSQL – 9.5 Docker – Docker版本1.12.0-rc2,build 906eacd,实验

Postgres在Docker持久数据

我在Docker容器中运行postgres来限制它有权访问的系统资源的数量。 我在理解如何使数据持久化方面遇到了一些麻烦。 我读过以下文章: https://www.andreagrandi.it/2015/02/21/how-to-create-a-docker-image-for-postgresql-and-persist-data/ http://container42.com/2013/12/16/persistent-volumes-with-docker-container-as-volume-pattern/ 哪个build议使用一个只有数据的容器,然后让我的postgres容器链接到它。 我不明白的是 这有什么好处? 据我所知,如果由于某种原因停泊docker机器(例如,移动到不同的物理机器),数据只容器停止运行,它的所有内容都丢失? 我已经尝试在postgres容器中创build一个卷,但实际上并没有将任何内容保存到磁盘。 这是我的docker文件。 我究竟做错了什么? FROM ubuntu MAINTAINER Andrew Broadbent <andrew.broadbent@manchester.ac.uk> # Add the PostgreSQL PGP key to verify their Debian packages. # It should be the same key as https://www.postgresql.org/media/keys/ACCC4CF8.asc RUN apt-key adv –keyserver hkp://p80.pool.sks-keyservers.net:80 –recv-keys B97B0AFCAA1A47F044F244A07FCC7D46ACCC4CF8 # Add PostgreSQL's repository. It contains the most recent stable […]

当试图使用卷时,Postgresql引发'数据目录拥有错误的所有权'

我试图在docker容器中运行postgresql,但当然我需要我的数据库数据是持久性的,所以我试图使用数据只有容器,这暴露卷来存储数据库在这个地方。 所以,我的数据容器有这样的Dockerfile: FROM ubuntu # Create data directory RUN mkdir -p /data/postgresql # Create /data volume VOLUME /data/postgresql 我运行的是: docker run –name postgresql_data lyapun/postgresql_data true 在我的postgresql.conf中设置: data_directory = '/data/postgresql' 然后我以这种方式运行我的postgresql容器: docker run -d –name postgre –volumes-from postgresql_data lyapun/postgresql 我得到了: 2014-07-04 07:45:57 GMT FATAL: data directory "/data/postgresql" has wrong ownership 2014-07-04 07:45:57 GMT HINT: The server […]

具有外部数据容器的Docker postgresql容器

我有一个数据容器与Dockerfile: from ubuntu:latest VOLUME ["/var/lib/postgresql/9.3/main"] 和一个postgresql服务容器: #install stuff ………… # Set the default command to run when starting the container CMD ["/usr/lib/postgresql/9.3/bin/postgres", "-D", "/var/lib/postgresql/9.3/main", "-c", "config_file=/etc/postgresql/9.3/main/postgresql.conf"] 然后我启动数据容器和postgresql容器: docker运行-i -t -d –name数据docker:数据 docker run -i -t -p 49131:5432 –name postgresql –volumes-from data –rm docker:postgresql 它说 : FATAL: data directory "/var/lib/postgresql/9.3/main" has wrong ownership HINT: The server […]

sqlx.Connect()卡在docker alpine:latest

我有问题,我设法减less到以下代码: package main import ( "fmt" "github.com/jmoiron/sqlx" _ "github.com/lib/pq" "os" ) func main() { addr := os.Getenv("DB") fmt.Println("Postgres addr: " + addr) _, err := sqlx.Connect("postgres", addr) if err != nil { fmt.Println("Could not connect…") } else { fmt.Println("Connecting successful") } } 我用代码和更多的解释来build立一个回购: https://github.com/mraxus/mystery-golang-alpine 当我通过golang:latest docker-compose在golang:latest镜像(这里是golang:latest )中创build并运行带有有效数据库URL的Go代码时,上述程序和postgres数据库都位于不同的容器中,程序按预期运行: build_1 | Postgres addr: postgres://postgres@postgres/postgres?sslmode=disable build_1 | Connecting […]

我可以从现有的数据库容器build立一个泊坞窗图像吗?

我是docker工人。 我正在使用docker撰写来pipe理容器。 我的目标是让数据库容器保持或不保存数据,可以由其他开发人员在没有许多手动步骤(pg_dump和pg_store等)的情况下在本地运行其开发环境。 我想知道是否可以构build数据库快照的docker镜像(postgres)。 这可能吗? 如果不是,build议使用docker做到这一点的方法是什么? 谢谢。

在Docker Compose中更改postgres容器服务器端口

我正在尝试使用Docker撰写在远程服务器上部署第二个数据库容器。 这个postgresql服务器运行在端口5433上,而不是第一个postgresql容器使用的5432。 当我设置应用程序,我得到这个错误输出: web_1 | django.db.utils.OperationalError: could not connect to server: Connection refused web_1 | Is the server running on host "db" (172.17.0.2) and accepting web_1 | TCP/IP connections on port 5433? 和我的docker撰写文件是: db: image: postgres:latest environment: POSTGRES_PASSWORD: route_admin POSTGRES_USER: route_admin expose: – "5433" ports: – "5433" volumes: – ./backups:/home/backups web: build: . command: bash […]

如何在入口点等待postgres的启动?

ENTRYPOINT之前,等待postgres在我的ENTRYPOINT内完全启动的最佳方法是什么? 现在我已经在我的机器上启动了大约50秒的时间。 所以我只睡了60秒 这不太好,因为在另一台机器上运行时,这可能不起作用。 ENTRYPOINT \ runuser -l postgres -c '/usr/lib/postgresql/9.3/bin/postgres -D /var/lib/postgresql/9.3/main -c config_file=/etc/postgresql/9.3/main/postgresql.conf & ' && \ sleep 60 && \ nosetests –verbose –cover-erase –with-coverage –cover-package=stalker 这是启动postgres的输出: 2017-02-13 13:46:49.541 UTC [9] LOG: database system was interrupted; last known up at 2017-02-13 12:53:23 UTC 2017-02-13 13:47:37.951 UTC [9] LOG: database system was not properly […]