LaraDockを利用してLaravel開発環境を整えたかったので、勉強のためLaraDockをgit cloneしたり消したり。
ERROR: for phpmyadmin Cannot start service phpmyadmin: driver failed programming external connectivity on endpoint laradock_phpmyadmin_1 (d4818c2cc0081852102cd2ab3404e96ed4db6253aeb0ed1f249c9d18fa854cd7): Bind for 0.0.0.0:8080 failed: port is already allocated
ERROR: Encountered errors while bringing up the project.
とエラーがでてきて立ち上がらないコンテナがでてきてたので、メモとして残しておきたいと思います。
##環境
Mac OS X Catalina 10.15.4
Docker version 19.03.8
docker-compose version 1.25.4
##エラーが起きた状態
LaraDockをgit cloneしたり消したりを繰り返して勉強していました。
いろんなQiita投稿記事を参考にしていたあと、公式ページ様にある手順で起動させようとしたところ、上記エラーが。
Creating laradock_docker-in-docker_1 ... done
Creating laradock_mysql_1 ... done
Creating laradock_redis_1 ... done
Creating laradock_workspace_1 ...
Creating laradock_phpmyadmin_1 ...
Creating laradock_phpmyadmin_1 ... error
Creating laradock_workspace_1 ... done
18fa854cd7): Bind for 0.0.0.0:8080 failed: port is already allocated
Creating laradock_php-fpm_1 ... done
Creating laradock_nginx_1 ... done
ん?
そのあと最初のエラーが表示されました。
##エラーの中身
エラー文がほぼ答えなのですが、phpmyadmin
が使うportが既に使われているからでした。
じゃ何と衝突してるのか。
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
94a10dcc3de2 laradock_nginx "/bin/bash /opt/star…" 2 minutes ago Up 2 minutes 0.0.0.0:80-81->80-81/tcp, 0.0.0.0:443->443/tcp laradock_nginx_1
abf30e97d0df laradock_php-fpm "docker-php-entrypoi…" 2 minutes ago Up 2 minutes 9000/tcp laradock_php-fpm_1
8a8fd63f2169 laradock_workspace "/sbin/my_init" 2 minutes ago Up 2 minutes 0.0.0.0:3000-3001->3000-3001/tcp, 0.0.0.0:8080->8080/tcp, 0.0.0.0:2222->22/tcp, 0.0.0.0:8001->8000/tcp laradock_workspace_1
c71e9e79dd9a docker:19.03-dind "dockerd-entrypoint.…" 2 minutes ago Up 2 minutes 2375-2376/tcp laradock_docker-in-docker_1
cfec401604c1 laradock_redis "docker-entrypoint.s…" 2 minutes ago Up 2 minutes 0.0.0.0:6379->6379/tcp laradock_redis_1
07264164c48a laradock_mysql "docker-entrypoint.s…" 2 minutes ago Up 2 minutes 0.0.0.0:3306->3306/tcp, 33060/tcp laradock_mysql_1
分かりにくかったんですが、laradock_workspace
と衝突してました。
最初のエラー文に書いてあるポート番号と同じのが見えますね。
それぞれが利用するポートはLaraDockディレクトリ内のdocker-compose.yml
にあり、そこを変更しました。
![スクリーンショット 2020-04-27 11.47.40.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F596140%2F4d93e507-4537-354b-6cce-c06ef140ced8.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=fb80b51ce9b173d8351268bb90eaa734)
![スクリーンショット 2020-04-27 11.48.27.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F596140%2F89a3fa7d-6bfc-747f-e346-1d5fa98ad02b.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=e9cffc7fc11c341297000c0b82985ec1)
8080が被ってるなら8081で良いかなと思ったんですが、どこかで8081って見た気がしたので8082に指定しました。他のと被ってたらまたエラー出るかな...
こんないい加減じゃダメですね。
##起動して確認
コンテナ削除してやり直し。
そうすると、
Name Command State Ports
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
laradock_docker-in-docker_1 dockerd-entrypoint.sh Up 2375/tcp, 2376/tcp
laradock_mysql_1 docker-entrypoint.sh mysqld Up 0.0.0.0:3306->3306/tcp, 33060/tcp
laradock_nginx_1 /bin/bash /opt/startup.sh Up 0.0.0.0:443->443/tcp, 0.0.0.0:80->80/tcp, 0.0.0.0:81->81/tcp
laradock_php-fpm_1 docker-php-entrypoint php-fpm Up 9000/tcp
laradock_phpmyadmin_1 /docker-entrypoint.sh apac ... Up 0.0.0.0:8082->80/tcp
laradock_redis_1 docker-entrypoint.sh redis ... Up 0.0.0.0:6379->6379/tcp
laradock_workspace_1 /sbin/my_init Up 0.0.0.0:2222->22/tcp, 0.0.0.0:3000->3000/tcp, 0.0.0.0:3001->3001/tcp, 0.0.0.0:8001->8000/tcp, 0.0.0.0:8080->8080/tcp
なんとか起動できました。
こちらの記事を思いっきり参考にさせてもらいました。
ありがとうございました。