首页 > 解决方案 > 无法从 docker 容器内 curl/ping 到主机 ip

问题描述

我使用 docker 并将 nginx 作为反向代理,在主机上只暴露了 80 和 443 个端口。我还有其他容器和 nginx 在同一网络下使用桥接驱动程序。问题是我无法从 docker 容器内 curl/ping 主机 IP。不过,我可以使用本地 DNS 访问其他容器。请帮忙。

Docker-组合文件

version: "3"

services:
  mongo:
    image: mongo
    container_name: mongo
    environment:
      - MONGO_INITDB_ROOT_USERNAME=rootmongo
      - MONGO_INITDB_ROOT_PASSWORD=p4Ss@1234#
    # For Persistance
    volumes:
      - db_data:/data/db
      - db_backup:/backup
      - db_dump:/dump
    restart: always
    networks:
      - app-network

  wealth_advisor_admin:
    build:
      context: ./adminpanel
      dockerfile: Dockerfile
    image: wealth_advisor_admin
    depends_on:
      - mongo
    restart: unless-stopped
    container_name: wealth_advisor_admin
    networks:
      - app-network


  wealth_advisor_web:
    build:
      context: .
      dockerfile: Dockerfile
    image: wealth_advisor_web
    container_name: wealth_advisor_web
    restart: unless-stopped
    depends_on:
      - mongo
    networks:
      - app-network


  webserver:
    image: nginx:mainline-alpine
    container_name: webserver
    restart: unless-stopped
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - web-root:/var/www/html
      - ./nginx-conf:/etc/nginx/conf.d
      - certbot-etc:/etc/letsencrypt
      - certbot-var:/var/lib/letsencrypt
      - dhparam:/etc/ssl/certs
    depends_on:
      - wealth_advisor_web
      - wealth_advisor_admin
    networks:
      - app-network

  certbot:
    image: certbot/certbot
    container_name: certbot
    volumes:
      - certbot-etc:/etc/letsencrypt
      - certbot-var:/var/lib/letsencrypt
      - web-root:/var/www/html
    depends_on:
      - wealth_advisor_web
    command: ---------------

volumes:
  certbot-etc:
  web-root:
  certbot-var:
  db_data:
  db_backup:
  db_dump:
  dhparam:
    driver: local
    driver_opts:
      type: none
      device: /root/trade/dhparam/
      o: bind

networks:
  app-network:
    driver: bridge

标签: dockerdocker-compose

解决方案


推荐阅读