dockerが起動できない (port is already allocated)

「dockerが起動できない (port is already allocated)」のアイキャッチ画像

dockerを起動させようとしたところ、 port is already allocated, つまりポートはもう割り振っちゃってます的なエラーが発生

ERROR: for mysql  Cannot start service mysql: driver failed programming external connectivity on endpoint test-mysql (b2c5bfe3339ba18ad0892ba8fc5a1f427a89b3915035bc12b0c4c1207e016f75): Error starting userland proxy: Bind for 0.0.0.0:3306 failed: port is already allocated
ERROR: Encountered errors while bringing up the project.

とりあえず解決策が以下のやり方
悩んだ割には結構簡単でした

# まずはポートを占領している奴を特定する
# 私の場合はポート3306をしているので3306で実行しました
$ sudo lsof -i:3306
Password:
COMMAND  PID   USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
mysqld  9447 _mysql   13u  IPv6 0x6973239584594d63      0t0  TCP *:mysql (LISTEN)

# 占領箇所を特定したら、そいつをkillすることで使えるようにします
$ sudo kill 9447

#kill し終わったら、次は起動です!
$ docker-compose up
Starting test-mysql ... 
Starting test-mysql ... done
Creating test-flask ... 
Creating test-flask ... done
Attaching to test-mysql, test-flask
test-mysql | 2017-08-24 02:12:21 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
test-mysql | 2017-08-24 02:12:21 0 [Note] mysqld (mysqld 5.6.37) starting as process 1 ...
test-flask |  * Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)
test-flask |  * Restarting with stat
test-flask |  * Debugger is active!
test-flask |  * Debugger PIN: 303-793-981

ちなみに色々試しましたが、以下のコードでは解決することができませんでした

$ screen ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/tty
# docker rm `docker ps -qa`
# rm /var/lib/docker/network/files/local-kv.db

参考にした記事

Docker for Mac でコンテナが起動しなくなった時の対処
素人がMastodonインスタンスをアップデートできた話とお世話になったコマンドたち (2/2)