Tag: postgresql

Docker:如何在不暴露端口的情况下连接到Postgresql容器

我在docker容器中设置了Elixir / Phoenix应用程序,为Postgresql服务器设置了单独的容器。 当我公开5432端口时,我只能连接到Postgresql服务器。 但我不希望港口公开,因为这是相当不安全的。 Postgresql服务器应该只能从phoenix容器访问。 但是,如果我不暴露端口,我只是在凤凰容器中出现“连接被拒绝”的错误。 app-phoenix-1 | 2016-03-15T11:41:32.701295542Z ** (Mix) The database for App.Repo couldn't be created, reason given: psql: could not connect to server: Connection refused app-phoenix-1 | 2016-03-15T11:41:32.701369511Z Is the server running on host "POSTGRES" (10.7.0.7) and accepting app-phoenix-1 | 2016-03-15T11:41:32.701395350Z TCP/IP connections on port 5432? 我链接的服务,并没有得到,为什么它不工作。 Postgresql已经启动并正在运行。 Postgres容器的日志文件中没有任何内容。 这是我的节点上的docker ps的结果: […]

无法连接Docker + PostgreSQL 9.3

谁可以帮我这个事? 我正在使用Mac OS X El Capitan + Docker。 我的图像的Dockerfile: https://gist.github.com/andrealmar/bce56f7d8450990333703aa5c4ac8d61 我运行我的容器: docker run andrealmar/postgresql:9.3 泊坞窗ps显示我的容器正在运行,我做一个docker检查 ,看看哪个IP地址容器有: docker inspect 8e65f4dec821 | grep IPAddress 输出: "SecondaryIPAddresses": null, "IPAddress": "172.17.0.2", "IPAddress": "172.17.0.2", 当我尝试使用psql进行连接时: psql -h 172.17.0.2 -U docker docker 它给我一个超时错误。 psql: could not connect to server: Operation timed out Is the server running on host "172.17.0.2" and accepting […]

我如何处理密码和dockerfiles?

我已经为docker托pipe了一个postgresql服务器。 在dockerfile中,环境variables'USER',并且将一个常量密码传递给一个psql的运行: USER postgres RUN /etc/init.d/postgresql start && psql –command "CREATE USER docker WITH SUPERUSER PASSWORD 'docker';" && createdb -O docker docker 理想情况下,无论是在此图像上调用“docker run”之前还是之后,我都希望调用者必须将这些细节input到命令行中,这样我就不必将它们存储在任何地方。 我不太清楚如何去做这件事。 docker是否支持将stdin读入环境variables? 或者也许有更好的方式来处理这一切呢?

使用Docker和Jenkinspipe理资源(数据库,elasticsearch,redis等)

我们需要使用Jenkins来testing每个需要的Web应用程序: 一个数据库(postgres在我们的情况) 一个search服务(ElasticSearch在我们的例子中,但有时只是) 一个caching服务器,比如redis 到目前为止,我们刚刚在Jenkins主服务器上运行了这些服务,但是当我们想要升级Postgres,ES或Redis版本时,这会导致问题。 并不是所有的应用程序都可以在locking步骤中移动,并且我们希望在提交移动应用程序之前在新版本上运行testing。 我们想要做的是在每个工作的基础上提供这些服务,每个服务都在自己的容器中运行。 什么是编排这些容器的最好方法? 不pipe工作是否成功,你如何启动这些辅助容器并将其拆除? 如何防止一个Web应用程序的作业运行中的数据库与另一个Web应用程序的作业中的数据库之间的端口冲突?

在Dockerfile中启用Postgis扩展Postgres

我如何在Dockerfile中启用Postgis扩展? Postgres安装已经在运行 这是Ubuntu中的命令: sudo -u postgres psql -c "CREATE EXTENSION postgis;" 我的Dockerfile: # Set the base image to Ubuntu FROM ubuntu:14.04 # Update the repository sources list RUN apt-get update -y ################## BEGIN INSTALLATION ###################### # Postgres with Postgis # Install wget RUN apt-get install wget -y # Setup Postgres repository RUN wget –quiet -O […]

docker集装箱不能够访问端口5432

我有一个试图连接postgres db(jdbc:postgresql:// xxxxxxx:5432 / My_DB)的spring应用程序。 当我使用“java -jar app.jar”命令运行jar时,它连接的很好。但是当我在Docker容器中运行时,它无法连接。 下面是我用来运行的命令。 docker run -p 5432:5432 my_image:latest 它看起来像5432是不是在容器里面打开似乎。 我遇到过类似的post,但没有提供任何解决scheme。 Postgres 9.1的Docker容器不公开端口5432到主机 对此有何想法? 谢谢

docker重新启动postgres时丢失的数据

我正在用docker-compose.yml运行一个postgres实例 – postgres: restart: always image: postgres:latest volumes: – /data:/var/lib/postgresql ports: – "5432:5432" environment: – POSTGRES_USER=admin – POSTGRES_PASSWORD=123456 – POSTGRES_DB=mydb – PGDATA=/var/lib/postgresql/data 我已经添加了几行几行。 我在文件中做了一个小改动,添加了container_name: postgres ,然后用docker-compose up -d重新启动 现在当我login到数据库,我没有看到任何表/数据。 psql -h ###### -p 5432 -d mydb -U admin –password 数据目录是作为卷添加的,并且是完整的。 这与初始化postgres有关吗? 更新2016/10/02 请注意, /data是安装在主机docker-machine上的外部硬盘驱动器。 更新2016/10/02 另外我注意到,当我改变重命名docker-compose.yml的位置(从/home/ubuntu/dev/docker-storage/docker-compose.yml到/home/ubuntu/dev/storage/docker-compose.yml ),并做一个docker-compose up -d ,我得到一个错误说 ERROR: for postgres Conflict. The […]

为什么我不能扩展dockerpostgres图像来创build额外的数据库和用户

我使用docker postgres 9.4.5镜像,并使用init.sh将其扩展到/docker-entrypoint-initdb.d容器中的/docker-entrypoint-initdb.d 。 我试图创build另一个数据库和一个非pipe理员用户,作为访问$POSTGRES_DB以及我创build的第二个数据库。 我尝试以下$POSTGRES_USER是用户myadmin和$POSTGRES_DB是通过mydb1 -compose环境传递的数据库mydb1 : #!/bin/bash set -e psql -v ON_ERROR_STOP=1 –username "$POSTGRES_USER" <<-EOSQL CREATE USER userx WITH password '$POSTGRES_PASSWORD'; CREATE DATABASE diagnostics; GRANT ALL PRIVILEGES ON DATABASE userx TO $POSTGRES_DB; GRANT ALL PRIVILEGES ON DATABASE userx TO mydb2; EOSQL 这给了我一个错误: postgres_1 | CREATE DATABASE postgres_1 | postgres_1 | CREATE ROLE postgres_1 […]

Laravel Docker无法执行PostgreSQL pg_restore

我使用Laravel 5运行Docker容器,并且在我的机器上安装了PostgreSQL 。 一切都很完美,除了我可以在我的数据库上获得许多数据,并且使播种需要大约1个小时。 我想到的解决方法是恢复一个备份文件(仅数据),将在大约5分钟为我的数据库种子。 真棒! 但… Laravel运行在Docker容器中,PostgreSQL不在Laravel中 $cmd = "pg_restore -v -U pgadmin -d $database $path"; exec($cmd); 我得到一个错误,说没有pg_restore执行。 sh: 1: pg_restore: not found 所以,最后,我的问题是: 我怎样才能使Laravel能够执行pg_restore? Obs:在机器上运行Laravel的时候也行,但是我真的需要用Laravel在docker和postgres之外解决这个问题。 提前致谢! 更新: 我编辑了docker-compose.yml并在卷下添加了以下行 ./usr/bin/pg_restore:/usr/bin/pg_restore 现在错误只是 sh: 1: pg_restore: Permission denied 这意味着现在它“看到”pg_restore命令,但没有执行它的权限,因为它运行在docker集装箱内……我该如何解决这个问题?

使用docker卷保持数据库

我试图在docker容器中保存postgres数据,这样只要docker-compose down and docker-compose up -d不会丢失以前会话的数据。 我一直无法做到这一点 – 将容器拉下来,然后再次按常规方式删除数据。 这是我目前的docker-compose.yml: version: '2' services: api: build: . ports: – '8245:8245' volumes: – .:/home/app/api – /home/app/api/node_modules – /home/app/api/public/src/bower_components links: – db db: build: ./database env_file: .env ports: – '8246:5432' volumes_from: – dbdata dbdata: image: "postgres:9.5.2" volumes: – /var/lib/postgresql/data 帮帮我?