【问题标题】:How does the Client in a docker image know the ip address of a server which is in another docker image?docker 镜像中的客户端如何知道另一个 docker 镜像中的服务器的 IP 地址?
【发布时间】:2020-05-15 22:49:35
【问题描述】:

我使用 React 客户端,Django 用于后端,Postgres 用于数据库。我正在准备客户端、服务器和数据库的 docker 映像。 我的 docker-compose.yml 看起来像这样:

version: '3'
services:
  client:
    build: ./client
    stdin_open: true
    ports:
      - "3000:3000"
    depends_on: 
     - server

  server:
    build: ./server
    ports:
      - "8000:8000"
    depends_on: 
     - db

  db:
    image: "postgres:12-alpine"
    restart: always
    ports: 
     - "5432:5432"
    environment: 
        POSTGRES_PASSWORD: bLah6laH614h

因为 docker 镜像可以单独部署在任何地方,我不确定如何从客户端代码和服务器中 db 的 ip 访问服务器。我是新来的反应,django 和码头工人。请帮忙!

【问题讨论】:

  • 您的问题是关于如何在docker-compose 或其他地方连接这些服务?
  • 如果我必须从客户端向服务器发出 post 请求,我应该使用什么 ip 地址?
  • 我已经发布了一个答案,它有帮助吗?我错过了什么?请告诉我;D
  • 谢谢贝尔纳多。我还在服务器上工作。将在一天内更新。
  • 再次查看 ;D 如果您需要任何帮助,请尽管询问!

标签: django reactjs docker docker-compose


【解决方案1】:

使用您的docker-compose.yml 文件配置作为基础,会发生 4 件事,根据 docs

  1. 创建了一个名为myapp_default 的网络。 (假设您的项目文件夹名称为myapp
  2. 使用 db 的配置创建容器。它以db 的名义加入网络myapp_default
  3. 使用服务器的配置创建容器。它以server 的名义加入网络myapp_default
  4. 使用客户端的配置创建容器。它以client 的名义加入网络myapp_default

现在要从clientserver 发送HTTP 请求,您应该使用此网址:

http://server:8000

因为项目3 并且因为server 配置的端口是8000

【讨论】:

    猜你喜欢
    • 2021-08-05
    • 1970-01-01
    • 2022-10-15
    • 2019-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-14
    • 1970-01-01
    相关资源
    最近更新 更多