2016-11-09 12 views
0

ポート8080:80 にオープンしているので、ホストからアクセスできるnginxコンテナを作成しました。 9000docker nginxとphp、php cant localhostに接続

nginxのに成功PHPで実行されますが、

開いているポート9000を持つFPMコンテナをPHPに接続されています。

私の問題は、localhost:8080 にアクセスしようとしていますが、問題はphpのlocalhost:8080が有効でないこと、nginxのコンテナに接続する必要があることです。ここ

は私のワードプレスのサイト上でのエラーです: あなたは何かがファンキーであることがわかります...私はhttp://localhost:8080/wp-content/themes/realtyspace/plugins/advanced-custom-fields-pro.zipからパッケージをインストールしダウンロードする私のドッキングウィンドウ-compose.yml


を添付します の下...

ダウンロードに失敗しました。 cURLのエラー7:ポート8080をlocalhostに接続できませんでした:接続が


ドッキングウィンドウ-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 
+0

これはLinuxで直接実行しているのですか、Docker for Windows/Macを使用していますか? – R0MANARMY

+0

私はMacでドッカーを使用しています、ありがとう –

+0

だから、nginxはphpと話す必要があり、nginxと話す必要があるという循環参照がありますか? – R0MANARMY

答えて

0

使用ドッキングウィンドウの内部ネットワークを拒否し、http://my-nginx:80にアクセスするためにPHPを設定します。

localhostは、すべてを実行しているDockerホストのIPアドレスではなく、PHPコンテナ自体のIPに解決されます。そして、http://dockerhost:8080を渡そうとすると、ポータブルではないdocker-compose.ymlが発生し、iptablesファイアウォールとnatルールに問題がある可能性があります。 v2の作成ファイルを使用することの価値は、それぞれのコンテナのDNS解決が相互に機能するように、Docker内部の独立したネットワークを取得することです。

+0

しかし、PHPのコードは、そのURLにアクセスしようとしています。私がexample.comのURLを与えていれば、単にそこからフェッチしようとしますか? –

+0

あなたが実行しているPHPコードがわからないのですが、あなたの質問にもっと詳細が必要です。 – BMitch

関連する問題