docker nginx和php,php无法连接到localhost

时间:2016-11-09 19:14:00

标签: docker docker-compose dockerfile

我创建了一个对端口8080:80开放的nginx容器 所以我可以从主机上访问它。

它连接到具有开放端口9000:9000

的php fpm容器

nginx成功运行php。

我的问题是php尝试访问localhost:8080 但问题是php localhost:8080无效,需要连接到nginx容器。

这是我的wordpress网站上的错误: 你可以看到那里的东西很时髦...... 下面我将附上我的docker-compose.yml

http://localhost:8080/wp-content/themes/realtyspace/plugins/advanced-custom-fields-pro.zip ...

下载安装包

下载失败。 cURL错误7:无法连接到localhost端口8080:连接被拒绝

搬运工-compose.yml

version: '2'
services:
  my-nginx:
    build: .
    volumes:
      - ./../:/var/www/html
    ports:
      - "8080:80"
    links:
      - my-php

  my-php:
    build:
      context: .
      dockerfile: Dockerfile.php-fpm
      volumes:
        - ./../:/var/www/html
      ports:
        - "9000:9000"
      links:
        - my-mysql

  my-mysql:
    image: mariadb:5.5
    volumes:
      - /var/lib/mysql
    environment:
      MYSQL_ROOT_PASSWORD: wp
      MYSQL_DATABASE: wp
      MYSQL_USER: wp
      MYSQL_PASSWORD: wp

1 个答案:

答案 0 :(得分:0)

使用docker的内部网络并配置php访问http://my-nginx:80

localhost将解析为php容器本身的独立IP,而不是运行所有内容的Docker主机。并且尝试传递http://dockerhost:8080将导致非便携式docker-compose.yml,并且可能会出现问题,而iptables防火墙和nat规则比它们的价值更麻烦。使用v2撰写文件的价值在于,您可以获得Docker内部的隔离网络,并使每个容器的DNS解析相互协作。