Tag: postgresql

在docker中恢复postgres

我遇到了很多尝试使用docker exec和postgresql psql实用程序来恢复在docker 1.3中运行的postgresql安装的一系列问题。 我有一个备份运行确定通过docker exec mycontainer pg_dumpall –clean –user=postgres –no-password > /tmp/backup.sql 。 我遇到了尝试恢复的问题,其中包括: docker exec仅在容器正在运行时才起作用,但psql无法用主动连接的客户端正确恢复 pg_ctl stop将退出postgres服务器进程,该进程会停止您正在运行的主容器和docker exec进程。 docker exec以root身份运行,但是pg_ctl必须以postgres身份运行(我试图使用pg_ctl来停止postgres,这样恢复就可以运行) 所以考虑到postgresql容器正在运行并为应用程序提供活动连接的情况,我该如何恢复? 寻找干净停止,运行恢复,启动等的细节 Env是docker 1.3,postgresql 9.4,数据/var/lib/postgresql/data在容器中的/var/lib/postgresql/data上的/var/lib/postgresql/data中。 在docker主机文件系统上有一个有效的.sql备份文件。 更新: FYI我可以开放任何解决scheme,无论是否涉及docker exec 。 如果我应该运行一个单独的容器并链接到主postgresql容器,并通过TCP与它交谈,例如,只要我得到一些可行的stream程就没有问题。 这是我迄今为止。 build议欢迎。 这是一个bash脚本(在构build过程中插入了一些胡须variables),用于在Docker主机上运行。 #!/bin/bash docker_sql() { docker exec \ –interactive \ –tty \ "${container}" \ psql –user="${user}" –no-password –file="$1" } export DOCKER_HOST=tcp://localhost:2375 […]

使用Bitbucket Pipelines和Docker为Ruby on Rails项目设置CD

我很想在一个Ruby on Rails / PostgreSQL / Sidekiq项目中的Bitbucket Pipelines中进行连续部署,但是我正在努力让自己的头脑完全融合在一起,特别是如何在Docker镜像中使用postgres 。 我对Docker和Pipelines很新。 在我的谷歌search中,Docker谈到了使用docker-compose来创build一个bundle,所以我有一个Postgres容器和一个Sideqik容器,然后将它们与应用程序容器链接起来。 但是我不确定包和图像之间有什么区别,以及Bitbucket Pipelines是否支持包。 最终我想在Heroku上设置部署到临时环境,但是现在只要让rspec spec在Pipelines中工作就好了。 是否有一个已经设置了Ruby + PostgreSQL的公有图像? 如果不是,我从哪里开始? 我目前的Dockerfile看起来像这样: FROM postgres:9.4 FROM ruby:2.3.1-onbuild RUN apt-get update -qq && apt-get install -y build-essential libpq-dev nodejs postgresql-client 然后我运行docker build . 和docker run -it my-image /bin/bash和以下命令: root@a84ad0e7c16b:/usr/src/app# postgres bash: postgres: command not found root@a84ad0e7c16b:/usr/src/app# psql psql: could […]

Docker撰写postgresql服务 – 在构build过程中无法创build用户和数据库?

我浪费了整整一天的时间,并且说我对简单的任务不必要的复杂性印象深刻 – 这完全是轻描淡写的。 好吧,从我的胸前就知道了,我正在用本教程构build一个使用docker-machine,docker-compose,postgresql和redis的django应用程序。 我已经设法使基本教程工作 – 但它不符合我的需要,因为我需要为我的应用程序创build一个用户和一个数据库 – 而不是使用两个“postgres”。 我使用了@dnephin的答案来解决类似的问题 ,并修改了我的代码,如下所示: 我在一个新目录中创build了一个新的Dockerfile ./database/ : FROM postgres:9.6 COPY . /fixtures WORKDIR /fixtures RUN /fixtures/setup.sh ./database/setup.sh内容: #!/bin/bash set -e pg_createcluster 9.6 main –start /etc/init.d/postgresql start su – postgres # makes no effing difference … psql -f create_fixtures.sql /etc/init.d/postgresql stop ./database/create_fixtures.sql内容: CREATE DATABASE mydatabase WITH ENCODING 'UTF8'; CREATE […]

Docker-compose添加Postgres密码

我遇到问题从我的远程机器访问我的postgres数据库。 我正在从digitalOcean液滴中运行docker-compose(django和postgres),所以我需要能够从我的mac访问数据库。 我以为下面的工作将基于docker-compose中的环境使用大纲。 任何帮助,将不胜感激。 db: image: postgres ports: – "5555:5555" environment: – POSTGRES_PASSWORD=mysecretpassword – POSTGRES_USER=postgres web: build: . command: python manage.py runserver 0.0.0.0:8000 volumes: – .:/code ports: – "8000:8000" links: – db 我试图从端口5555访问pgadmin3 postgres数据库,用户:postgres,通过:mysecretpassword。

为什么在构build时不postgres官方docker回购启动数据库服务?

在https://github.com/docker-library/postgres(github回购)和https://registry.hub.docker.com/_/postgres/ (docker中心)的背景下, 可以看出数据库是由Entrypoint和CMD用bash脚本启动的 /docker-entrypoint.sh 同 ENTRYPOINT ["/docker-entrypoint.sh"] EXPOSE 5432 CMD ["postgres"] 提供另一个脚本钩来改变数据库 /docker-entrypoint-initdb.d 这意味着只有在运行时键入docker run命令时,数据库才能启动(可以是pqsl)。 这会导致一个问题,我们无法在构build时运行数据库之前自定义数据库,例如添加扩展名和使用数据填充数据库。 当然,这可以在运行时完成。 但每次运行图像时都有重复操作的优点。 那么,从Docker或Postgres的angular度来看,这个devise背后的逻辑是什么? 我怎样才能添加扩展和生成时间填充数据?

如何解决Docker for Mac中Docker.qcow2的大小限制?

我有一个大的(100GB +)数据库,我试图用官方postgres图像运行。 我无法将数据存储在~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/Docker.qcow2卷中,因为Docker for Mac中的~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/Docker.qcow2文件的大小限制为约60gb。 我很犹豫要把一个主机目录挂载成一个卷,因为挂载的主机目录卷的文件访问速度比常规卷慢得多。 这些是一些有用的链接,在这些问题上有更多的细节: 这讨论了Docker.qcow2文件的大小限制 这也讨论了Docker.qcow2文件的大小限制 这讨论了挂载的主机目录卷速问题 这给了一个很好的描述如何用一个可以变大的文件replaceDocker.qcow2文件 这将讨论Docker.qcow2文件如何在内容被删除时不收缩(这不是直接相关的,但会使问题进一步复杂化) 你们都吃速度损失,并挂载主机目录? 你是否手动创build一个qcow2文件,可以使用qemu进行扩展(如果你这样做,你需要在升级之间维护这个文件)? 你有其他的办法来解决这个问题吗?

dockerpostgres与初始数据不会持久提交

我在docker环境中创build了一个rails应用程序,并链接到一个postgres实例。 我编辑了postgres容器来添加初始数据(通过从rails应用程序运行rake db:setup)。 现在我提交了postgres数据库,但是当我创build一个新的容器(提交的postgres图像)时,似乎没有记住我的数据。 难道没有可能将数据保存在提交中,然后再使用它? 我使用了postgres镜像: https : //registry.hub.docker.com/_/postgres/

docker-compose为一个纯数据容器和web服务器postgresql

我正在使用docker-compose.yml文件为我的django nginx postgresql和纯数据容器构build3个docker容器。 这是我的docker-compose.yml data: # pure data container image: busybox volumes: – /etc/postgresql – /var/log/postgresql:/var/log/postgresql – /var/lib/postgresql – /var/log/nginx:/var/log/nginx – /var/log/supervisor:/var/log/supervisor db: image: postgres volumes_from: – data web: build: . ports: – "80:80" – "443:443" links: – db volumes_from: – data $docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES cc26b3a72a02 myweb_web:latest […]

在docker环境中重新启动postgres

我有麻烦重新启动dockerized postgres数据库(我使用核心操作系统)。 数据库使用该命令在bash脚本中启动 # boot.sh sudo -i -u postgres /usr/lib/postgresql/9.3/bin/postgres -D /var/lib/postgresql/9.3/main -c config_file=/etc/postgresql/9.3/main/postgresql.conf 哪个工作。 我有一个由confd调用的脚本,当某些etcd键发生变化时(这部分是可以的,文件被正确调用),并且必须重新启动postgres(不重新载入,因为一些configuration更改需要重新启动)。 这是我尝试的主要选项,失败了… # restart.sh sudo -u postgres /usr/lib/postgresql/9.3/bin/pg_ctl –pgdata=/var/lib/postgresql/9.3/main restart 系统地提出一个错误: %FATAL: lock file "postmaster.pid" already exists %HINT: Is another postmaster (PID 273) running in data directory "/var/lib/postgresql/9.3/main"? 此外, # restart.sh rm /var/lib/postgresql/9.3/main/postmaster.pid sudo -i -u postgres /usr/lib/postgresql/9.3/bin/postgres -D /var/lib/postgresql/9.3/main […]

在Docker和OSX中保留PostgreSQL数据

我有一个带有PostgreSQL数据库的OSX主机(实际上是用Redmine做实验)。 我只想在销毁容器后能够保存数据,这样我就可以安全地使用了,并且可以快速地重新部署我的仓库。 如果我尝试在Kitematic中添加本地卷,容器将无法启动,并显示错误: initdb: could not create directory "/var/lib/postgresql/data/pg_xlog/archive_status": Permission denied initdb: removing contents of data directory "/var/lib/postgresql/data" creating subdirectories … 我试图chmod 777 -R本地文件夹,但结果相同。 有没有人有任何解决这个或其他任何build议保存/保留数据从PostgreSQL和docker?