エラー: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にあります。
助けてください!
おそらく、すでにポート3306で実行されているMySQLサービスがあります。最初に閉じる必要があります。
その後、docker-compose down
そしてdocker-compose up
。
プロジェクトにファイルを追加した後、権限を変更することも忘れないでください(dartisan make:auth
)dpermit
付き
PDATE:ポートを「8084」に変更したため、localhost:8084
Apacheのデフォルトが表示されている場合、dockervelはnginx
に基づいているため、別のサーバーを参照している可能性があります。
おそらく、Dockerにもいくつかのギャップがあります。ローカルストレージとdockerストレージを混在させないでください。 /var/www
コンテナ内のローカル/var/www
。 docker-compose.ymlで、ローカル~/dockervel/www
コンテナへ/var/www
。
最初からやり直し、Apacheサーバーに加えた変更を元に戻すことをお勧めします。シャットダウンしてください、あなたはそれを必要としません。 Dockervelは、コンテナ内のNginXサーバーを提供します。
私は同じ問題を抱えていたと
Sudo netstat -nlpt |grep 3306
pIDとそれが開始したサービス(mysgld)を見せてくれました。私がPIDを殺そうとするたびに、それは再び開始されました。しかし、次のようにしてサービスを停止すると、問題は修正されました。
Sudo service mysql stop
mysql
ではなくmysqld
を使用する必要があることに注意してください。
これがあなたのためになることを願っています-私はdocker-compose up
問題なく
ubuntuでこのコマンドを実行すると、Dockerコンテナが機能するためにmysqlの実行が停止します。
Sudo service mysqld stop
次に、Apache2が実行されている場合、特にnginxを使用する場合は、サービスを停止する必要があります。
Sudo service Apache2 stop
次に、docker-compose up -d ...
コマンド
表示されているエラーは、ポート3306でリッスンしているローカルmysqlインスタンスからのものです(現在はコメントからpid 1370で)。別のプロセスで既に使用されている間、このホストポートで公開するコンテナーを実行することはできません。解決策は、ローカルホストでmysqlを停止するか、コンテナの公開ポートを変更/削除することです。ポートが他のコンテナでのみ必要な場合は、ポートを非公開のままにして、ドッカープライベートネットワークで直接通信できます(デフォルトでは、これは「ブリッジ」です)。
マシンにmysqlをインストールし、デフォルトのポート3306を使用するため、mysqlポートを変更する必要があります
そして今、あなたはdockervel_mysql_1を同じポート3306で実行しようとしているので、「アドレスはすでに使用されています」というエラーに表示されます。
したがって、たとえばdockervel_mysql_1ポートを3307に変更すると、マシンで実行されているmysqlを停止せずに正常に動作します