web-dev-qa-db-ja.com

ユーザーランドプロキシの起動エラー:リッスンtcp0.0.0.0:3306:バインド:アドレスは既に使用されています

エラー:dockervel_mysql_1コンテナを再起動できませんc258b418c03cbd6ec02c349c12cf09403f0eaf42fa9248019af7860d037d6474:driverは、エンドポイントdockervel_mysql_1の外部接続のプログラミングに失敗しました(da3dd576458aa1fe3af7b539c48b9d61d97432cf5e9ee02d78562851f53981ae):Error starting userland proxy:listen tcp0.0.0.0:3306:bind :アドレスはすでに使用されています。

LAravelアプリを作成してDockerfileを配信する必要がありますが、本当にこれにこだわっています。その前に、私のマシンにlaravelをインストールする悪夢がありました。

ドッカーベル画像を取得しようとしていますが、ここの手順に従っています: http://www.spiralout.eu/2015/12/dockervel-laravel-development.html

しかし、dartisan make:authを実行すると、上記のエラーが発生します。

Docker-compose.ymlのデフォルトポートを変更しようとしました

ポート:

- "8084:80"

それでも何も、私のマシンでApache2(service Apache2 stop)を停止しようとしましたが、docker-compose restart およびdocker container dockervel_mysql_1を削除します。私はもう1つLaravelプロジェクトを持っていると断言しなければなりません。/var/www/laravelにあります。

助けてください!

11
moonlight

おそらく、すでにポート3306で実行されているMySQLサービスがあります。最初に閉じる必要があります。
その後、docker-compose downそしてdocker-compose up
プロジェクトにファイルを追加した後、権限を変更することも忘れないでください(dartisan make:authdpermit付き

PDATE:ポートを「8084」に変更したため、localhost:8084
Apacheのデフォルトが表示されている場合、dockervelはnginxに基づいているため、別のサーバーを参照している可能性があります。
おそらく、Dockerにもいくつかのギャップがあります。ローカルストレージとdockerストレージを混在させないでください。 /var/wwwコンテナ内のローカル/var/www。 docker-compose.ymlで、ローカル~/dockervel/wwwコンテナへ/var/www
最初からやり直し、Apacheサーバーに加えた変更を元に戻すことをお勧めします。シャットダウンしてください、あなたはそれを必要としません。 Dockervelは、コンテナ内のNginXサーバーを提供します。

11
Spiral Out

私は同じ問題を抱えていたと

Sudo netstat -nlpt |grep 3306

pIDとそれが開始したサービス(mysgld)を見せてくれました。私がPIDを殺そうとするたびに、それは再び開始されました。しかし、次のようにしてサービスを停止すると、問題は修正されました。

Sudo service mysql stop

mysqlではなくmysqldを使用する必要があることに注意してください。

これがあなたのためになることを願っています-私はdocker-compose up問題なく

25
Per Mikkelsen

ubuntuでこのコマンドを実行すると、Dockerコンテナが機能するためにmysqlの実行が停止します。

Sudo service mysqld stop  

次に、Apache2が実行されている場合、特にnginxを使用する場合は、サービスを停止する必要があります。

Sudo service Apache2 stop

次に、docker-compose up -d ...コマンド

4
goodnesskay

表示されているエラーは、ポート3306でリッスンしているローカルmysqlインスタンスからのものです(現在はコメントからpid 1370で)。別のプロセスで既に使用されている間、このホストポートで公開するコンテナーを実行することはできません。解決策は、ローカルホストでmysqlを停止するか、コンテナの公開ポートを変更/削除することです。ポートが他のコンテナでのみ必要な場合は、ポートを非公開のままにして、ドッカープライベートネットワークで直接通信できます(デフォルトでは、これは「ブリッジ」です)。

2
BMitch

マシンにmysqlをインストールし、デフォルトのポート3306を使用するため、mysqlポートを変更する必要があります

そして今、あなたはdockervel_mysql_1を同じポート3306で実行しようとしているので、「アドレスはすでに使用されています」というエラーに表示されます。

したがって、たとえばdockervel_mysql_1ポートを3307に変更すると、マシンで実行されているmysqlを停止せずに正常に動作します

0