Tag: postgresql

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

在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?

docker托pipe的数据库以某种方式免于备份最佳实践?

据我所知,对于MS SQL,PostgreSQL, 甚至是MySQL数据库(所以,我假设,一般RDBMS引擎),你不能简单地备份他们托pipe的文件系统,但需要做一个SQL-对内部一致性有任何希望,因此能够实际恢复。 但是,然后这样的答案 ,实际上引用的官方文档似乎表明,可以打开数据库数据: docker run –volumes-from dbdata -v $(pwd):/backup ubuntu tar cvf /backup/backup.tar /dbdata 这两个想法似乎彼此不一致。 有没有什么特别的Docker如何工作,使得没有必要使用SQL级别的备份? 如果不是的话,我的理解是什么? (当你不能用它来备份一个生产数据库时,为什么要用这个官方的例子呢?这是不对的…)

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背后的逻辑是什么? 我怎样才能添加扩展和生成时间填充数据?