【问题标题】:Docker connection refused between multiple projects多个项目之间的 Docker 连接被拒绝
【发布时间】:2018-06-27 21:12:37
【问题描述】:

我设置了 2 个项目(Admin 和 API)并尝试在本地移入 docker。

我可以毫无问题地访问两者上正在运行的 Web 实例,但是当管理员尝试向 API 发出 Curl 请求时,我收到 cURL 错误:

cURL 错误 7:无法连接到 localhost 端口 8080

这是我的 docker-compose.yml 文件内容:

version: "3.1"
services:

    memcached:
      image: memcached:alpine
      container_name: project-admin-memcached

    redis:
      image: redis:alpine
      container_name: project-admin-redis

    mariadb:
      image: mariadb:10.1
      container_name: project-admin-mariadb
      working_dir: /application
      volumes:
        - ./Projects:/application
      environment:
        - MYSQL_ROOT_PASSWORD=docker
        - MYSQL_DATABASE=db_test
        - MYSQL_USER=test
        - MYSQL_PASSWORD=test
      ports:
        - "8083:3306"

# docker-compose exec webserver sh
# docker exec -it project-admin-webserver nginx -s reload
    webserver:
      image: nginx:alpine
      container_name: project-admin-webserver
      working_dir: /application
      volumes:
          - ./Projects/Api:/application/api
          - ./Projects/Admin:/application/admin
          - ./Docker/nginx:/etc/nginx/conf.d
      ports:
          - "8080:8080"
          - "8090:8090"

# docker-compose exec php-fpm bash
    php-fpm:
      build: Docker/php-fpm
      container_name: project-admin-php-fpm
      working_dir: /application
      volumes:
          - ./Projects:/application
          - ./Docker/php-fpm/php-ini-overrides.ini:/etc/php/7.2/fpm/conf.d/99-overrides.ini

我可以通过以下方式从浏览器访问这两个项目:

http://localhost:8080/

http://localhost:8090/

我该如何解决这个问题?

【问题讨论】:

  • 您的 curl 命令使用什么主机名?您可能知道,docker-compose 会为您创建一个默认网络。所以你会使用你的容器名称作为主机
  • 好的,谢谢。

标签: php symfony docker docker-compose


【解决方案1】:

在您的 docker 网络中(默认使用 compose 创建),您必须使用容器名称。 所以在容器内你必须使用http://webserver:8080

【讨论】:

    猜你喜欢
    • 2020-07-08
    • 1970-01-01
    • 2019-10-20
    • 2017-05-09
    • 2020-06-10
    • 1970-01-01
    • 2017-07-10
    • 2018-07-03
    • 2020-02-22
    相关资源
    最近更新 更多