Docker-compose upでTime Out Errorが出て、コンテナが起動できない。

# Docker-compose upで次のエラーが出てしまう。
```
ERROR: for develop_db_1  UnixHTTPConnectionPool(host='localhost', port=None): Read timed out. (read timeout=70)
ERROR: An HTTP request took too long to complete. Retry with --verbose to obtain debug information.
If you encounter this issue regularly because of slow network conditions, consider setting COMPOSE_HTTP_TIMEOUT to a higher value (current value: 60).
```
タイムアウトしてる的なことが書いてありますが、さっきまで元気に動いてたのにな。。

# 要約
今回上記のエラーに対して、3つの方法を試しました。1つ目は「docker restart」をコマンド実行。2つ目はPCの再起動（Macのアップデートついで）。3つ目はdockerのアップデートです。結論、dockerアプリのアップデートでなぜか解決されましたが、原因は不明です。考察も何もないので、参考程度に見ていただければと思います。原因が分かる人は後学のためにぜひご教授いただければ嬉しいです。

# 試したこと
## Docker restart
下記を参考にdocker restartしてみました。
https://github.com/docker/compose/issues/3633#issuecomment-254194717

```
$ docker restart 161126611c36
```
何も音沙汰がない、、、
タイムアウトのエラーすらも出ない、、、

一旦Ctrl + cで脱出。

## 再起動
一度Mac OSのアップデートもあってたのでついでにPCを再起動しました。

試しにdocker-compose upしてみます。

```
$ docker-compose up
Starting develop_db_1 ... done
Starting develop_web_1 ...
Starting develop_web_1 ... error

ERROR: for develop_web_1  Cannot start service web: driver failed programming external connectivity on endpoint develop_web_1 (1087b48b01978ddeb71ba3f659512092f15c8cd18e961a22cf3ed708c06fa8dc): Bind for 0.0.0.0:3000 failed: port is already allocated

ERROR: for web  Cannot start service web: driver failed programming external connectivity on endpoint develop_web_1 (1087b48b01978ddeb71ba3f659512092f15c8cd18e961a22cf3ed708c06fa8dc): Bind for 0.0.0.0:3000 failed: port is already allocated
ERROR: Encountered errors while bringing up the project.
```

なんか今度はportが空いてないけど？的なエラーみたいですね。
Mac OSにも関わってるエラーだったのか？
とりあえず今実行中のコンテナがあるか確認します。

```
$ docker ps
CONTAINER ID   IMAGE      COMMAND                  CREATED       STATUS         PORTS      NAMES
161126611c36   postgres   "docker-entrypoint.s…"   4 weeks ago   Up 2 minutes   5432/tcp   develop_db_1
```

「develop_db_1」が起動されてますね。
killしましょう。

```
$ docker kill 161126611c36
161126611c36

$ docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
```

もう一度立ち上げてみます。

```
$ docker-compose up
Starting develop_db_1 ... done
Starting develop_web_1 ...
Starting develop_web_1 ... error

ERROR: for develop_web_1  Cannot start service web: driver failed programming external connectivity on endpoint develop_web_1 (e984d233040217363a16f5c962ac83a245aad3115ed1f06ee30ba69b5ab9b7c0): Bind for 0.0.0.0:3000 failed: port is already allocated

ERROR: for web  Cannot start service web: driver failed programming external connectivity on endpoint develop_web_1 (e984d233040217363a16f5c962ac83a245aad3115ed1f06ee30ba69b5ab9b7c0): Bind for 0.0.0.0:3000 failed: port is already allocated
ERROR: Encountered errors while bringing up the project.
```

ああ、また同じエラー。嫌になってくる。

```
$ docker ps
CONTAINER ID   IMAGE      COMMAND                  CREATED       STATUS          PORTS      NAMES
161126611c36   postgres   "docker-entrypoint.s…"   4 weeks ago   Up 10 seconds   5432/tcp   develop_db_1
```

## dockerアップデート

ん、右上のバーになんかエクスクラメーションマークが出てる。なんだこれは？
![スクリーンショット 2021-03-11 7.36.56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/248634/81a48a61-16c6-c9a0-a013-fd57bd4d1c81.png)

クリックしてみると、、、もしかしてアップデートが必要なのか？
![スクリーンショット 2021-03-11 7.38.01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/248634/3baf70ed-b32f-5433-4b7f-b258f9999ec9.png)

このボタンをクリックしてアップデートしました。
今度こそ。。

```
$ docker-compose up
Removing develop_web_1
Recreating develop_db_1 ... done
Recreating b349f84b69a8_develop_web_1 ... done
Attaching to develop_db_1, develop_web_1
db_1   |
db_1   | PostgreSQL Database directory appears to contain a database; Skipping initialization
db_1   |
db_1   | 2021-03-11 22:58:45.251 UTC [1] LOG:  starting PostgreSQL 13.1 (Debian 13.1-1.pgdg100+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 8.3.0-6) 8.3.0, 64-bit
db_1   | 2021-03-11 22:58:45.252 UTC [1] LOG:  listening on IPv4 address "0.0.0.0", port 5432
db_1   | 2021-03-11 22:58:45.252 UTC [1] LOG:  listening on IPv6 address "::", port 5432
db_1   | 2021-03-11 22:58:45.257 UTC [1] LOG:  listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
db_1   | 2021-03-11 22:58:45.329 UTC [29] LOG:  database system was interrupted; last known up at 2021-03-11 03:43:38 UTC
db_1   | 2021-03-11 22:58:48.470 UTC [29] LOG:  database system was not properly shut down; automatic recovery in progress
db_1   | 2021-03-11 22:58:48.477 UTC [29] LOG:  redo starts at 0/15CE700
db_1   | 2021-03-11 22:58:48.477 UTC [29] LOG:  invalid record length at 0/15CE738: wanted 24, got 0
db_1   | 2021-03-11 22:58:48.477 UTC [29] LOG:  redo done at 0/15CE700
db_1   | 2021-03-11 22:58:48.522 UTC [1] LOG:  database system is ready to accept connections
```

# 結論
アップデートしてなかったのが駄目だったっぽいけど、原因の原因は分かりませんでした。
分かる人いたらぜひ教えて下さい。
ここまで読んでいただいたのに、なんかすみません。

# 追記　2021/03/13
また同じエラーが出て結構萎えてたんですが、なんと今回はいろいろ調べた結果、Dockerを再起動することで解決できるっぽいです。
https://stackoverflow.com/questions/44407939/cannot-stop-a-running-docker-container

![スクリーンショット 2021-03-13 10.59.46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/248634/6e2a8642-8d06-9b5d-e06c-97bc1bbb6fce.png)

「Restart Docker」でDockerを再起動したらなおりました。