Tag: postgresql

docker工人postgres /entrypoint-initdb.d/正在删除我的持久性存储

我有一个docker-compose.yml 。 我用docker-compose up -d –build启动它,因为它经常需要重build图像。 这是我的.yml的一部分: services: postgresdb: image: postgres:9.4 container_name: postgresdb ports: – 5432:5432 volumes: # mount createtablescript – ./postgres/script.sql:/docker-entrypoint-initdb.d/script.sql # persist postgres data inside named docker volume – psql-data:/var/lib/posgresql/data 问题是如下:我开始这个,入口点内的脚本被执行,我有我的数据库(它创build一些表,并插入一些值)。 我可以在数据库中添加数据。 但是当我执行docker-compose down和docker-compose up -d –build我的数据已经消失了。 它被保存在指定的docker卷中。 但是docker-compose up -d –build命令正在重新安装正在重新安装所有内容的script.sql。 我怎样才能解决这个问题?

Docker Postgres扩展

我试图find如何添加扩展到官方postgres图像的文档https://store.docker.com/images/postgres和https://docs.docker.com/engine/examples/postgresql_service/ 。 我知道Docker Store / Hub上有大量的postgres扩展。 但我正在寻找一些基本的入门级文档,因为我需要了解这一点。 是否有创build扩展的环境variables。 我似乎不知道在哪里放置命令,如psql -d postgres-c "CREATE EXTENSION postgis;" 。 作为服务添加到compose.yml文件吗? services: db: image: postgres 或者我添加一个RUN命令到Dockerfile ? Docker文档中是否有某些我无法find的东西?

将Dockerized应用程序连接到本地Redis和Postgresql

我想通过一些教程和指南在Docker上设置我的项目。 我设置Elixir / Phoenix应用程序,它有Redis和Postgresql,因为它是依赖项。 我设法使用docker撰写Dockerize,它使用pg和Redis的图片。 我试图找出一种方法来连接我的凤凰应用程序到我的本地Postgresql和Redis,而不是连接到他们的图像,因为分贝和Redis需要在服务器上,而不是在docker集装箱。 有没有人可以帮助我的例子? 提前致谢。

与docker的Postgres失去连接,并获得文件系统的问题

我正在使用Docker 17.06.0和Docker 17.06.0 docker-compose 1.14.0来使用Postgres 9.4.1 。 当我使用它的时候,经常会发生连接丢失的情况,在日志中我得到这个: LOG: invalid length of startup packet LOG: could not send data to client: Broken pipe FATAL: connection to client lost ERROR: could not open file "base/1/11943": No such file or directory FATAL: could not open file "base/12141/11943": No such file or directory 重新启动容器后,它没有得到任何改善: postgres cannot access the […]

使用Tomcat和PostgreSQL在Docker上部署应用程序

我有一个testApp.war,我想通过docker 部署在Tomcat上(docker在10.0.2.157上)。 我的testApp只能用postgres DB和指定的用户testUser和密码testUserPasswd正常工作。 我build立了这样一个结构: . ├── db │ ├── Dockerfile │ ├── pg_hba.conf │ └── postgresql.conf ├── docker-compose.yml └── web ├── context.xml ├── Dockerfile ├── software │ └── testApp.war └── tomcat-users.xml 所有这些文件的内容附在下面。 我用命令启动我的容器: docker-compose up -d 但是,当我去webbrowser上的Tomcat( http://10.0.2.157:8282/manager/html ),并尝试启动我的testApp,我得到: HTTP状态404 – 未find types状态报告 消息/ testApp / 描述原始服务器没有find目标资源的当前表示,或者不愿意透露目标资源的存在。 Apache Tomcat / 8.5.20 我做错了什么? 你可以帮我吗? DB […]

Docker正在重复使用不同容器的相同卷

我创build了两个不同的自定义图像基于相同的官方postgres图像。 这两个Dockerfile看起来像: FROM postgres:latest LABEL vendor="***" \ vendor.website="***" \ description="The postgres database" COPY init.sh /docker-entrypoint-initdb.d/ 这些图像用于不同的docker-compose.yml文件。 问题是,基于这些映像的容器挂载相同的卷,我最终有不同的应用程序相同的数据库。 我以为docker会为不同的容器创build单独的卷。 我究竟做错了什么? docker检查信息: 容器1: “ID”: “b6ce892e88e08b410af2603041789641cdfe9648e5c36d66d0cff8c495de2720”, “形象”: “SHA256:4c6ac32f355cdc93251256cc8e8171fc02bb85d719f4efb9ac6bb999ad66b3ab” …… “坐骑”:[{ “types”: “音量”, “姓名”: “5bb91515eb853e0c18e396b041058d4a03424dfb45c3eb2d2b9890e0b044b461”, “源代码”:“/ VAR / lib / docker / volumes /“/ var / lib / postgresql / data”,“Driver”:“local”,“Mode”:“rw”,“RW”:true,“/ lib / docker / volumes /传播“:”“}], 容器2 “ID”: […]

Docker在产卵容器时复制PGDATA文件夹

我有一个问题使用postgres:9.5官方docker的形象。 我使用Docker来共享几个开发人员之间的开发环境。 我的设置包含应用程序代码的图像和数据库的另一个图像。 我通过docker-compose编排这些东西。 我的问题是与数据库图像。 我使用postgres:9.5官方图像作为创build我的数据库映像的基础。 我用一个每天运行的脚本来做到这一点: # pull and run -d postgres:9.5 named "mydatabase" with custom $PGDATA # run a container linked to "mydatabase" that populates the database # commit and push to registry "mydatabase" 这会创build一个我们可以在docker-compose.yml简单引用的图像。 问题是当容器产生时,整个$PGDATA目录被AUFS驱动程序复制到容器层。 读取文档告诉我AUFS驱动程序是这样做的,因为我的容器试图写入$PGDATA目录(Copy on Write策略)。 但是我没有看到什么可能导致这个目录的写操作。 这很烦人,因为我的数据库很大,开发人员的计算机上的磁盘空间是两倍(一个用于mydatabase映像,另一个用于生成的容器)。 任何想法,为什么会发生,我应该如何解决这个问题(我正在考虑数据的容器,但不得不挖掘更多)? 非常感谢 精度1:确实是整个$PGDATA目录被复制到容器层(甚至像PG_VERSION文件)。 因此,这不是导致AUFS写入的SQL语句。 精度2:为了能够坚持和共享数据,我不使用卷,我的脚本(上面描述)设置不同的$PGDATA值比postgres:9.5默认。 数据因此被“保存”在创build的图像中。 精度3:我不重写ENTRYPOINT或CMD ,因此它是来自postgres:9.5的值被执行。 Docker版本17.06.2-ce,build cec0b72

docker和docker-composose中的多个数据库

我有一个由两个主要java应用程序组成的项目,这些应用程序使用八个postgres数据库,那么在docker-compose中有没有一种方法来构build八个不同的数据库,以便每个数据库拥有不同的所有者和密码? 我可以在docker-compose中做这个吗? 例如 : services: postgresql: build: db/. ports: – "5432:5432" environment: – POSTGRES_DB=database1 – POSTGRES_USER=database1 – POSTGRES_PASSWORD=database1 我知道我可以把所有的.sql文件放在docker-entrypoint-initdb.d中,postgres会自动创build它们,但是我怎么声明.sql文件在什么数据库中? Tnx,Tom

如何在不删除现有数据的情况下升级Docker Postgresql?

我是docker和postgresql的初学者。 如何将docker postgresql 9.5升级到9.6而不会丢失我当前的数据库? fyi:即时通讯使用Ubuntu 14和Docker 17.09 提前致谢。

错误:使用Docker时找不到pg_config可执行文件

我正在尝试使用Docker构build一个使用Postgres的Flask应用程序。 我想连接到Postgres的AWS RDS实例,但使用Docker作为我的Flask应用程序。 但是,当试图设置psycopg2它会遇到一个错误,因为它找不到pg_config 。 这是错误: Building api Step 1/5 : FROM python:3.6.3-alpine3.6 —> 84c98ca3b5c5 Step 2/5 : WORKDIR /usr/src/app —> Using cache —> 407c158f5ee4 Step 3/5 : COPY . . —> 966df18d329e Step 4/5 : RUN pip install -r requirements.txt —> Running in 284cc97aeb63 Collecting aniso8601==1.3.0 (from -r requirements.txt (line 1)) Downloading aniso8601-1.3.0.tar.gz (57kB) […]