首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从另一个容器和localhost连接docker容器

从另一个容器和localhost连接docker容器
EN

Stack Overflow用户
提问于 2019-05-24 04:27:45
回答 1查看 114关注 0票数 0

我有一个简单的web应用程序,我将其配置为在docker容器中运行。配置如下所示

代码语言:javascript
复制
version: '3'
services:
  service-1:
    build: service-1
    restart: unless-stopped
    ports:
      - "8080:8080"
    networks:
      - uni

  service-1-postgres:
    restart: unless-stopped
    ports:
      - "5432:5432"
    image: "postgres:11.3"
    environment:
      POSTGRES_PASSWORD: root
    networks:
      - uni

networks:
  uni:
    driver: bridge
    ipam:
      driver: default
      config:
        - subnet: 192.168.0.1/24

我使用192.168.0.1(网络子网)连接到另一个容器中的postgres容器。但现在我希望能够在IDE中运行我的服务,以加快开发速度,并在容器中运行db。但是现在连接到数据库失败了。如何配置我的docker-compose,使其能够使用同一主机在网络内部和外部(从数据库)连接到我的数据库容器。

EN

回答 1

Stack Overflow用户

发布于 2019-05-24 07:05:39

重要的是要对此进行某种实际的配置。C PostgreSQL客户端库支持标准的PGHOST环境变量,这是一个很好的选择。

在本地开发的集成开发环境中,您可以设置PGHOST=localhost或不设置它。它将连接到本地主机(从主机的角度来看)端口5432,主机上的端口5432是您为PostgreSQL容器设置的发布端口。

相反,当你在Docker中运行时,你可以将PGHOST设置为另一个容器的名称,前提是两个容器都在同一个非默认网络上。Docker Compose将自动为您创建一个非默认网络,您不需要手动配置您显示的网络。容器可以使用其服务块的名称作为主机名来访问。

代码语言:javascript
复制
version: '3'
services:
  service-1:
    build: service-1
    restart: unless-stopped
    ports:
      - "8080:8080"
    environment:
      PGHOST: service-1-postgres

  service-1-postgres:
    # as above, less the networks: block
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56282489

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档