Docker Compose + Postgres。暴露端口[英] Docker Compose + Postgres: Expose port

本文是小编为大家收集整理的关于Docker Compose + Postgres。暴露端口的处理方法,想解了Docker Compose + Postgres。暴露端口的问题怎么解决?Docker Compose + Postgres。暴露端口问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

我目前正在尝试将Docker用于我的新Django/Postgres项目.我正在使用Mac,通常使用Postico快速连接到我的数据库.

我曾经像这里一样连接:

在此处输入图像说明

我使用官方的Docker文档来设置Docker-Compose.我现在有一个问题,我无法通过Postico连接到Postgres DB.在我看来,问题来自未暴露的港口.

在此处输入图像说明

version: '3'

services:
  db:
    image: postgres
  web:
    build: .
    command: python3 manage.py runserver 0.0.0.0:8000
    volumes:
      - .:/code
    ports:
      - "8000:8000"
    depends_on:
      - db

推荐答案

只需将端口映射到主机计算机,将其添加到撰写文件中的db服务:

ports:
  - "5432:5432"

还确保在撰写文件中设置postgres密码变量

environment:
  POSTGRES_PASSWORD: example

默认用户是Postgres,您可以使用POSTGRES_USER变量更改它.

您可以在此处阅读有关图像的使用情况: https://hub.docker .com/_/postgres/

其他推荐答案

默认情况下,为您的应用程序组成一个网络.

可以通过撰写文件中的服务名称访问每个容器.

在您的情况下,您不必将端口公开到主机计算机上的Web应用程序即可访问它.您可以简单地将db用作Postgres的主机名(和端口的5432).

实际上在Docker撰写文档中提供了一个非常相似的示例: https://docs.docker.com/compose/networking/networking/

本文地址:https://www.itbaoku.cn/post/1763861.html