簡體   English   中英

docker compose 內部的 Docker 通信以及與 docker 外部的數據庫的通信

[英]Docker communication inside docker compose and with database which is outside docker

我對 docker 和網絡通信有點困惑。 我嘗試了很多東西,但沒有用:-(。

我有以下 docker compose:

version: '3'
  services:
    nginx:
      container_name: nginx
      image: nginx:stable-alpine
      restart: unless-stopped
      tty: true
      ports:
        - 80:80
      volumes:
        - ./nginx/conf.d:/etc/nginx/conf.d:ro
      depends_on:
        - app
      networks:
        - frontend
        - backend
    app:
      restart: unless-stopped
      tty: true
      build:
        context: .
        dockerfile: Dockerfile
      container_name: app
      expose:
        - "9090"
      ports:
        - 9090:9090
      networks:
        - backend

networks:
  frontend:
  backend:

我想交流:

  1. 從 nginx 到應用程序 //這可能有效
  2. 從應用程序到安裝在服務器上的 postgreSQL(無 docker 容器)

我不能這樣做,我嘗試了很多東西,但出了點問題:-(

您可以選擇以下兩個選項中的任何一個:

  1. 讓你的 postgresql 監聽你所有的網絡接口(或者更安全但更復雜的設置的 docker 橋接器),為了實現這一點,你需要確保你的配置看起來像這樣:
# grep listen /var/lib/pgsql/data/postgresql.conf
listen_addresses = '*'
  1. 在您的 docker compose 中使用主機網絡模式,它在您的主機網絡名稱空間中運行 docker 而不是創建新網絡:
network_mode: "host"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM