【问题标题】:Connect to PostgreSQL running in a docker container连接到在 docker 容器中运行的 PostgreSQL
【发布时间】:2017-03-16 08:57:22
【问题描述】:

我有一个使用 docker-compose 运行 PostgreSQL 实例的简单 Flask 应用程序。如何在终端连接数据库?

version: '2'
services:
    web:
        build: .
        command: python manage.py runserver
        volumes:
            - .:/app
        ports:
            - 5000:5000
        links:
            - postgres
        env_file:
            - .env
    postgres:
        image: postgres:9.4
        ports:
            - 5432:5432
        environment:
            POSTGRES_PASSWORD: user
            POSTGRES_USER: password
            POSTGRES_DB: postgresdb

【问题讨论】:

  • 您没有包含来自您的烧瓶应用程序的任何代码,也没有包含您遇到的实际错误。这个 docker-compose.yml 文件本身看起来不错,尽管 links: 部分是不必要的。
  • 我只想通过终端连接到我的 psql 实例,所以不需要任何烧瓶代码...

标签: postgresql docker docker-compose


【解决方案1】:

我认为您需要将 postgres 移到 web 应用程序上方。

version: '2'
services:
    postgres:
        image: postgres:9.4
        # container_name:
        #    - my_postgres_1
        ports:
            - 5432:5432
        environment:
            POSTGRES_PASSWORD: mysecretpassword
            POSTGRES_USER: postgres
            POSTGRES_DB: postgresdb
    web:
        build: .
        command: python manage.py runserver
        volumes:
            - .:/app
        ports:
            - 5000:5000
        # links:
        #    - postgres
        env_file:
            - .env

在运行docker-compose -d up 之后。您可以通过运行此 Docker 命令通过 psql 访问 postgres。请获取您的 postgres 容器名称,即my_postgres_1

docker run -it --rm --link my_postgres_1:postgres postgres psql -h postgres -U postgres

【讨论】:

    猜你喜欢
    • 2023-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-10
    • 1970-01-01
    • 2021-08-10
    相关资源
    最近更新 更多