Tag: postgresql

无法连接到docker中的postgres服务器

我在sudo docker run -it -p 5432:5432 9c421f1a239c bash启动了一个postgresql服务器,并通过sudo docker run -it -p 5432:5432 9c421f1a239c bash公开了5432端口,并在sudo docker run -it -p 5432:5432 9c421f1a239c bash容器内手动启动postgres服务器,但无法通过命令连接到它: psql -h 172.17.0.63 -U venti 。 172.17.0.63是一个正确的IP,通风是我的PG用户名。 但是得到错误: psql: could not connect to server: Connection refused Is the server running on host "172.17.0.63" and accepting TCP/IP connections on port 5432? 我的pg_hba.conf看起来像这样: local all […]

Docker备份和恢复postgres

我使用dockerpostgres:9.4图像。 我需要知道如何备份和还原卷容器。 创build卷容器: docker run -v /var/lib/postgresql/data –name dbdata postgres:9.4 /bin/true 使用音量 docker run –name=postgres –volumes-from=dbdata -d -p 6432:5432 postgres:9.4 备份卷容器 docker run –volumes-from dbdata -v $(pwd):/backup postgres:9.4 tar cvf /backup/backup.tar /var/lib/postgresql/data 在新容器中还原卷 docker run –name=dbdata-new –volumes-from dbdata -v $(pwd):/backup ubuntu:14.04 /bin/sh -c 'cd /var/lib/postgresql/data && tar xvf /backup/backup.tar' 在新卷中用于创build新的postgres容器: docker run –name=postgres-new –volumes-from=dbdata-new -d […]

在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 […]

Postgres Docker Image:无法将数据库映射到主机

我使用Docker Hub的股票官方Postgres图片。 docker pull postgres 。 我想将Postgres容器中的data目录映射到我的OS X主机。 所以,我试了这个。 docker run –rm -p 5432:5432 -e POSTGRES_PASSWORD=mypass -v `pwd`/data:/var/lib/postgresql/data postgres 这导致Postgres容器无法正确启动。 fixing permissions on existing directory /var/lib/postgresql/data … ok creating subdirectories … initdb: could not create directory "/var/lib/postgresql/data/global": Permission denied initdb: removing contents of data directory "/var/lib/postgresql/data" 我试图实现的目标是让我的数据库数据存储在主机上,这样我就可以启动一个postgres容器,并从前一个实例读取(或加载)数据库。 我在正确的轨道上还是这是一个愚蠢的方式来实现数据库的持久性?

泊坞窗撰写链接似乎不起作用

我正在使用Docker Compose在开发中运行Elixir / Phoenix应用程序。 这个设置非常标准,有一个postgres容器和一个web容器。 但是,我很难让Web容器与数据库容器交谈。 这是我的Web容器Dockerfile : FROM ubuntu:14.04 MAINTAINER me@example.com RUN locale-gen en_US.UTF-8 ENV LANG en_US.UTF-8 ENV LANGUAGE en_US:en ENV LC_ALL en_US.UTF-8 ENV DEBIAN_FRONTEND noninteractive RUN apt-get update RUN apt-get install -y wget RUN apt-get install -y curl RUN apt-get install -y inotify-tools RUN apt-get install -y postgresql-client RUN wget https://packages.erlang-solutions.com/erlang-solutions_1.0_all.deb \ && […]

如何解决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 […]