Tag: postgresql

从同一个物理机器访问docker上运行的PostgreSQL

我是新来的docker,下面是我的Dockerfile部分启动postgreSQL: RUN apt-key adv –keyserver hkp://p80.pool.sks-keyservers.net:80 –recv-keys B97B0AFCAA1A47F044F244A07FCC7D46ACCC4CF8 RUN echo "deb http://apt.postgresql.org/pub/repos/apt/ precise-pgdg main" > /etc/apt/sources.list.d/pgdg.list RUN apt-get update && apt-get install -y python-software-properties software-properties-common postgresql-9.3 postgresql-client-9.3 postgresql-contrib-9.3 USER postgres RUN /etc/init.d/postgresql start &&\ psql –command "CREATE USER postgres1 WITH SUPERUSER PASSWORD 'password';" &&\ createdb -O postgres1 password RUN echo "host all all 0.0.0.0/0 md5" […]

如何在官方Postgres容器内启动Cron / Crond

crond在官方postgres阿尔卑斯形象中并没有默认运行。 我怎么能定义我的Dockerfile来确保守护进程在后台运行? 我希望它在默认情况下运行,如果可能的话,即使容器重新启动。 我试图添加CMD ["/usr/sbin/crond"]到我的Dockerfile但我没有成功。 任何想法如何结合postgres运行这个? 更新 我添加了天翁的答案: […]如果你必须在一个容器中运行crond,我build议使用一个单独的容器,它除了crond以外什么都不运行(因此Docker可以跟踪它的生命周期,并且当/如果失败时重启,机器重启等等)。 你应该能够从第二个容器连接到PostgreSQL实例,但是如果绝对必要的话,可以使用–network container:some-postgres来直接join数据库容器的networking名称空间。

在postgres docker容器中创build一个用户

我正在尝试在docker容器中创build一个django应用程序,但是我不知道如何在django使用的postgres容器中创build一个用户。 我想这就是为什么当我启动它(由docker-compose up –build –force-recreate )它告诉我database_1 | FATAL: role "my_user" does not exist database_1 | FATAL: role "my_user" does not exist 。 我究竟做错了什么? docker-compose.yaml现在看起来像: version: "3.1" services: database: image: postgres:9.5 environment: POSTGRES_DB: "django_db" POSTGRES_USER: "my_user" POSTGRES_PASSWORD: "my_password" POSTGRES_DATA: /var/lib/postgresql/data/pgdata logging: options: max-size: "10m" max-file: "3" restart: always volumes: – "database:/var/lib/postgresql/data" tmpfs: – "/tmp" – "/run" […]

Docker-Compose Postgres 5432 Bind:地址已经在使用错误

好吧,所以我一直在寻找3-4天,我似乎无法find解决我的错误。 我发现了类似的错误,有些似乎在描述我的确切问题,但没有一个解决scheme奏效。 我试图得到一个简单的postgres,expression,节点应用程序启动和运行。 我希望能够运行docker-compose up -d ,并build立所有的图像,卷等。然后,我将运行一个bash脚本,将种子我的postgres数据库与数据。 但是,我不断收到我使用的端口错误。 我已经删除了所有的图像,容器,甚至重新安装了Docker,但是我无法弄清楚。 我从docker-compose中除去了一切,除了postgres,它仍然不起作用。 version: '3' services: postgres: image: postgres:10.0 volumes: – /var/lib/postgresql/data ports: – '5432:5432' 然后在我的主机上,我只是计划运行下面的bash脚本。 #!/bin/bash host="postgres.dev" adminUser="postgres" psql -h $host -U $adminUser -c "select 1 from pg_database where datname = 'table_name';" | grep -q 1 || psql -h $host -U $adminUser -f ./"$(dirname $0)"/init-local-db.sql 我知道这种方法应该工作,因为我在一个工作项目之后对它进行模式化…对他们有用。 但是,这是我得到的错误: […]

连接时Gorm + Docker错误

我试图用Docker连接到我的postgresql数据库: package main import ( "fmt" "log" "github.com/jinzhu/gorm" _ "github.com/jinzhu/gorm/dialects/postgres" ) type Product struct { gorm.Model Code string Price uint } var db *gorm.DB func init() { connection := fmt.Sprintf("host=db sslmode=disable user=dnz-dev password=dnz-dev") db, err := gorm.Open("postgres", connection) if err != nil { log.Fatalln(err) } defer db.Close() } func main() { // Migrate the schema […]

knex种子不在docker环境中工作

我为一些REST API使用nodejs和knex 。 我使用这个代码来运行迁移和种子 knex.migrate.latest() .then(() => { return knex.seed.run(); }) .then(() => { // migrations are finished, init server }); 我正在使用远程 数据库进行此testing。 当我使用node index.js从本地主机运行它时,它运行良好,迁移运行,然后数据库填充种子。 但是,当我创build一个Docker镜像并运行它时, 迁移按预期工作,但种子失败。 日志输出如下: Segmentation fault npm ERR! code ELIFECYCLE npm ERR! errno 139 npm ERR! com.app@0.2.0 start: `ENV=prod node index.js` npm ERR! Exit status 139 npm ERR! npm ERR! Failed […]

Docker中的PostgreSQL – pg_hba.conf允许从主机访问容器

我想在Docker容器中运行PostgreSQL。 我正在构build自己的Docker镜像,因为我想包含PostgreSQL扩展。 我应该编辑pg_hba.confconfiguration文件来: 允许来自其他容器的访问 允许来自主机的访问 第一个很简单:如果我没有弄错,我可以为172.17.0.0/16添加一条规则。 但是我怎样才能接近第二呢? 主机连接到容器中的psql时,IP(或范围)是什么样的? 备注:我通过docker run -p 127.0.0.1:5432:5432启动容器,所以理论上我可以只允许all在pg_hba.conf因为端口转发只绑定到127.0.0.1 。 但是我更喜欢pg_hba.conf这个额外的安全级别,当我(可能是错误的)通过docker run -p 5432:5432运行容器。 我希望这是有道理的。 更新 实际上,设置范围172.17.0.0/16似乎不正确。 例如,我的容器在我的testing中有IP 172.18.0.2 。 根据我迄今为止的调查,似乎没有就默认范围或如何configuration这个范围达成共识。

Docker中的PostgreSQL – 从主机访问

我一直在尝试访问Docker容器中运行的PostgreSQL。 我可以从localhost:8080上的admhost连接到PostgreSQL,这是另一个容器,但是我不能从我的主机连接,尽pipe我将端口5432映射到主机。 作为一个容器的IP连接,我一直在使用从“ docker inspect <postgre_container> ”获取的IP地址 – 通常是172.21.0.2/3 。 这就是我的docker-compose.yml的样子: version: '3.1' services: db: image: postgres:9.6.0 restart: always environment: POSTGRES_PASSWORD: root POSTGRES_USER: root ports: – "5432:5432" volumes: – pgdata:/var/lib/postgresql/data adminer: image: adminer restart: always ports: – 8080:8080 volumes: pgdata: 我会很高兴任何提示,谢谢

在docker容器中运行的Solr没有连接到PostgreSQL数据库

我有一个Docker容器中的PostgreSQL和Solr,运行在同一台机器上。 我正在尝试从Postgres进入Solr的数据导入,但我收到错误。 以下是日志的相关部分: Full Import failed:java.lang.RuntimeException: java.lang.RuntimeException: org.apache.solr.handler.dataimport.DataImportHandlerException: Unable to execute query: SELECT * FROM formulas org.postgresql.util.PSQLException: Connection to 127.0.0.1:5432 refused. Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections. 基本上连接被拒绝/从来没有做,但我很困惑。 netstat -nltp 产量 tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 772/sshd tcp 0 0 127.0.0.1:5432 0.0.0.0:* LISTEN 1822/postgres […]

docker postgresql容器的循环备份

我想使用docker部署一个应用程序,并希望使用postgresql容器来保存我的数据。 但是我担心丢失数据,所以我需要备份。 我知道我可以在主机上运行一个cron作业来从容器中转出数据,但是这种方法不是容器化的,当我部署到新的位置时,我必须记得添加cronjob。 什么是一个好的, 最好是容器化的方法来实现来自postgresql docker容器的循环数据备份?