2017-10-26 15 views
-1

Dockerコンテナ(php7.0-fpm、nginx、mysql、およびphpmyadmin)を使用するアプリケーションを開発しました。ローカル(MacOS)と私のVPS(Debian 9 Stretch)にあります。昨日、nginxがhttpトラフィックをhttpsに強制できることを確認するために、私のdocker-composeファイルのnginx設定にポート80を追加しました。これは私が期待のようにローカルに動作しますが、私は私のVPS上の変更を引っ張ったときに、私はdocker-compose up --buildを実行したとき、私は、次のメッセージが表示されます。ローカルで動作するVPS(Debian)にDockerコンテナがロードされない

ERROR: for my_nginx Cannot start service nginx: driver failed programming external connectivity on endpoint my_nginx (ff89cec0a968850919eebabe9e003c0bd4e65205eb6f3c3dd286037b3a1745fc): Error starting userland proxy: listen tcp 0.0.0.0:80: listen: address already in use

ERROR: for nginx Cannot start service nginx: driver failed programming external connectivity on endpoint my_nginx (ff89cec0a968850919eebabe9e003c0bd4e65205eb6f3c3dd286037b3a1745fc): Error starting userland proxy: listen tcp 0.0.0.0:80: listen: address already in use

奇妙なことは、私はローカルでコマンドを実行すると、すべてが正常に動作していることです。私ドッキングウィンドウ-compose.yml

version: "2.0" 

services: 
    nginx: 
      build: ./nginx/ 
      ports: 
       - 443:443 
       - 80:80 
      volumes: 
       - ${APPLICATION_ROOT}:/${WEBROOT} 
       - ./ssl:/etc/nginx/ssl 
       - ./nginx/config/default.conf:/etc/nginx/conf.d/default.conf 
      restart: always 
      depends_on: 
       - php 
      environment: 
       ENVIRONMENT: "${APPLICATION_ENV}" 
       URL: "${APPLICATION_URL}" 
      container_name: my_nginx 

    php: 
      build: ./php/ 
      ports: 
       - 8080:80 
      volumes: 
       - ${APPLICATION_ROOT}:/${WEBROOT} 
      restart: always 
      depends_on: 
       - mysql 
      environment: 
       ENVIRONMENT: "${APPLICATION_ENV}" 
       URL: "${APPLICATION_URL}" 
       MYSQL_HOST: "${DB_HOST}" 
       MYSQL_DATABASE: "${DB_NAME}" 
       MYSQL_USER: "${DB_USERNAME}" 
       MYSQL_PASSWORD: "${DB_PASSWORD}" 
      container_name: my_php 

    mysql: 
      build: ./mysql/ 
      volumes: 
       - ./db:/var/lib/mysql 
      restart: always 
      ports: 
       - 3306:3306 
      environment: 
       MYSQL_ROOT_PASSWORD: "${DB_ROOT_PASSWORD}" 
       MYSQL_HOST: "${DB_HOST}" 
       MYSQL_DATABASE: "${DB_NAME}" 
       MYSQL_USER: "${DB_USERNAME}" 
       MYSQL_PASSWORD: "${DB_PASSWORD}" 
       explicit_defaults_for_timestamp: 1 
      container_name: my_db 

    phpmyadmin: 
      build: ./phpmyadmin/ 
      restart: always 
      depends_on: 
       - mysql 
      ports: 
       - 8181:80 
      environment: 
       PMA_HOST: my_db 
       MYSQL_ROOT_PASSWORD: "${DB_ROOT_PASSWORD}" 
       MYSQL_USERNAME: "${DB_USERNAME}" 
       MYSQL_PASSWORD: "${DB_PASSWORD}" 
      container_name: my_phpmyadmin 

誰もが、私はここに欠けているものを知っているかの内容を以下に

?私は8282:80にPHPポートを変更しようとしましたが、どちらも動作しませんでした(と私は実際にポート&すべての仕組みを理解していない)。そして、それはどうすれば私のMac上でローカルに動作しますか?

答えて

0

エラー、あなたがそれを読めば、それをすべて言う:

address already in use

何かがすでにポート80をリッスンしています。 netstat -pln | grep 80を実行すると、ポートをブロックしているプロセスが正確に表示されます。 kill -9し、エラーなしでコンテナを構築することができます。

+0

Apacheは私のvpsにインストールされ、ポート80に耳を傾けるので、nginxはポート8001を聞きました。それが解決しました。 Thnx – Maurice

関連する問題