Tag: psycopg2

Dockernetworking – 服务发现

我可能会问一个很小的问题,但是我一直在挣扎,自己却没有find解决这个问题的办法。 我试图更好地理解Dockernetworking是如何工作的,为此,我创build了一个简单的微服务体系结构,由2个简单的服务组成:一个Web应用程序(ms)和一个数据库(db)。 docker-compose.yaml文件如下所示: version: "3" services: ms: build: ./ms1 ports: – "8081:8080" db: image: postgres restart: always ports: – "8001:5432" environment: POSTGRES_USER: **** POSTGRES_PASSWORD: **** POSTGRES_DB: microservices 从Docker文档中,我应该可以使用stringpostgres://db:5432从我的ms服务连接到db 。 但是,尝试通过psycopg2 lib提供的连接function来连接它时 db_connection = connect(dbname="db_name", user="****", password="****", host="postgres://db:5432") popup如下错误: psycopg2.OperationalError: could not translate host name "postgres://db:5432" to address: Name or service not known 问题是:我想如何发现docker-compose文件中链接在一起的服务?

(psycopg2.OperationalError)无法连接到服务器:连接被拒绝是服务器

我想连接两个docker容器,一个posgresql和另一个python瓶应用程序。 两者都正确链接,python应用程序中的所有连接variables直接取自postgres容器中通过链接显示的连接variables,与检查postgresql容器时发现的variables完全相同。 当我使用psql从连接string的确切参数即: psql -p 5432 -h 172.17.0.2 -d mydb -U user 在postgres容器中的数据库连接是成功的,所以我知道postgres通过指定的端口等正确通信。但是,当我试图通过具有相同的连接variables的瓶子连接到数据库,我得到这个错误: Traceback(最近一次调用的最后一个):_do_get中的文件“/usr/local/lib/python3.6/site-packages/sqlalchemy/pool.py”,第1122行返回self._pool.get(wait,self._timeout)文件“/usr/local/lib/python3.6/site-packages/sqlalchemy/util/queue.py”,第145行,在get raise empty sqlalchemy.util.queue.Empty 在处理上述exception期间,发生了另一个exception: 回溯(最近的最后一次调用):文件“/usr/local/lib/python3.6/site-packages/sqlalchemy/engine/base.py”,行2138,在_wrap_pool_connect返回fn()文件“/ usr / local / lib / python3.6 / site-packages / sqlalchemy / pool.py“,第328行,在unique_connection中返回_ConnectionFairy._checkout(self)File”/usr/local/lib/python3.6/site-packages/sqlalchemy/pool“。 py“,第766行,在_checkout fairy = _ConnectionRecord.checkout(pool)文件中”/usr/local/lib/python3.6/site-packages/sqlalchemy/pool.py“,第516行,在checkout中rec = pool._do_get ()文件“/usr/local/lib/python3.6/site-packages/sqlalchemy/pool.py”,第1138行,在_do_get self._dec_overflow()文件中“/usr/local/lib/python3.6/site -packages / sqlalchemy / util / langhelpers.py“,第60行, 退出 compat.reraise(exc_type,exc_value,exc_tb)文件”/usr/local/lib/python3.6/site-packages/sqlalchemy/util/compat。 py“,第187行,在reraise raise value文件”/usr/local/lib/python3.6/site-packages/sqlalchemy/pool.py“,第1135行,在_do_get中返回self._create_connectio n()文件“/usr/local/lib/python3.6/site-packages/sqlalchemy/pool.py”,第333行,在_create_connection中返回_ConnectionRecord(self)文件“/usr/local/lib/python3.6/ site-packages / […]

Python psycopg2 – 处理大量数据

我试图从一个数据库(postgresql)的大型数据(15 B)转移到其他与docker上的python / psycopg2。 我的docker有4 GB的内存和内存不足。 我做错了什么? cursor = conn.cursor() cursor.execute('select * from schema.table') for row in cursor: tp = tuple(map(lambda x: x.encode('utf-8'), row) cursor.execute('Insert into table2 values {}'.format(tp)) conn.commit()

错误:使用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) […]

如何使用pyscopg2在PostgreSQL中创build表?

我正在运行一个包含postgres作为服务的Docker Compose应用程序。 以下是docker-compose.yml : version: '3' services: postgres: image: postgres environment: – POSTGRES_PASSWORD=foo ports: – 5432:5432 在docker-compose build之后, docker-compose up我看到容器正在运行,如果我做了docker ps : kurt@kurt-ThinkPad:~$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 8a7a20686728 postgres "docker-entrypoint…" 28 minutes ago Up 17 seconds 0.0.0.0:5432->5432/tcp apkapi_postgres_1 由于端口5432映射到本地主机,我想我可以做以下(在ipython ): In [1]: import psycopg2 In [2]: conn = psycopg2.connect(dbname="postgres", […]

从本地机器上的psycopg2连接到Docker上的PostgreSQL数据库

我已经使用下面的命令来创build一个运行Postgres的Docker镜像: docker pull postgres docker run –name test-db -e POSTGRES_PASSWORD=my_secret_password -d postgres 然后我创build了一个名为test的表,并将一些随机数据插入到几行中。 我现在试图在本地机器上通过Python中的psycopg2连接到这个数据库表。 我使用命令docker-machine ip default查找docker-machine ip default的IP地址为192.168.99.100,并使用以下命令尝试连接: conn = psycopg2.connect("dbname='test-db' user='postgres' host='192.168.99.100' password='my_secret_password' port='5432'") 这不是与“OperationalError:无法连接到服务器:连接被拒绝(0x0000274D / 10061)”的错误信息 。 。 一切似乎都是为了这个,所以我想不出为什么会被拒绝。 根据这个postgres镜像的文档( https://hub.docker.com/_/postgres/ ),这个镜像包含了EXPOSE 5432(postgres端口),默认的用户名是postgres。 我也尝试使用docker inspect test-db | grep IPAddress | awk 'print{$2}' | tr -d '",'获取映像本身的IP地址 docker inspect test-db | grep IPAddress […]

加载psycopg2模块时从'wheel'安装时出错

我正试图从包含wheel档案的本地软件包目录安装一些python需求。 我在Docker容器中安装需求。 我遵循的步骤是: $ pip install wheel # wheel runs, outputs .whl files to wheelhouse directory $ pip wheel –wheel-dir wheelhouse -r requirements.txt 然后,在我的Dockerfile : ADD requirements.txt /tmp/requirements.txt ADD wheelhouse /tmp/wheelhouse # install requirements. Leave file in /tmp for now – may be useful. RUN pip install –use-wheel –no-index –find-link /tmp/wheelhouse/ -r /tmp/requirements.txt 这工作 – […]