Help us understand the problem. What is going on with this article?

LaraDockでポート番号重なっててエラー

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
これを直接指定しました。

スクリーンショット 2020-04-27 11.48.27.png

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

なんとか起動できました。

こちらの記事を思いっきり参考にさせてもらいました。
ありがとうございました。

ama_keshi
臨床工学技士/不整脈治療専門臨床工学技士/CDR/植込み型心臓デバイス認定士/呼吸療法認定士 元医療従事者です。 思うところがありプログラマを目指し、関西のSES企業にて働いています。 勉強したことを少しずつ書いていきます。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした