【Docker】Docker ~ Dockerアンチパターン ~

■ はじめに

https://dk521123.hatenablog.com/entry/2020/04/24/160044

の続き。

今回は、Docker のノウハウについて、書き溜めていく。

目次

【1】コンテナは rootユーザで起動しない
  1)使用上の注意:Non-Rootユーザの場合、Port1024以上を指定する必要がある
【2】特定環境に依存するイメージを作成してしまう
【3】ブラックボックスなイメージを作成してしまう
【4】巨大なアプリを1つのイメージで作成してしまう

【1】コンテナは rootユーザで起動しない

コンテナをハックされた場合、
コンテナからホストにアクセスできる可能性もあるため
rootユーザで起動しない方がいい 

1)使用上の注意:Non-Rootユーザの場合、Port1024以上を指定する必要がある




【2】特定環境に依存するイメージを作成してしまう

* Docker が入っている環境なら、どのOSでも動くようなイメージにする

【3】ブラックボックスなイメージを作成してしまう

* 冪等性を考慮したイメージを作成する

【4】巨大なアプリを1つのイメージで作成してしまう

* 小さく細かく作り、保守性を高める
* 複数コンポーネントの場合、Docker compose で。

関連記事

Docker ~ 基礎知識編 ~
https://dk521123.hatenablog.com/entry/2020/04/24/160044
Docker ~ Windows / 環境構築編 ~
https://dk521123.hatenablog.com/entry/2017/09/23/235818
Docker ~ Proxy環境下でDockerを使用する ~
https://dk521123.hatenablog.com/entry/2023/11/30/004707
WSL2 ~ Docker-CE / 環境構築編 ~
https://dk521123.hatenablog.com/entry/2021/11/14/224428
WSL ~ Docker-CE + Genie / 環境構築編 ~
https://dk521123.hatenablog.com/entry/2021/11/03/003836
Docker Desktop / WSL2 ~ Windows / 環境構築編 ~
https://dk521123.hatenablog.com/entry/2020/12/08/165505
Docker ~ Linux / 環境構築編 ~
https://dk521123.hatenablog.com/entry/2018/04/10/234030
Docker ~ docker を sudo なしで実行する ~
https://dk521123.hatenablog.com/entry/2023/11/22/000000
Docker ~ 基本編 / docker network ~
https://dk521123.hatenablog.com/entry/2022/04/30/000000
 Docker ~ 基本編 / Data Volume ~
https://dk521123.hatenablog.com/entry/2018/09/08/222100
Docker ~ 基本編 / Dockerfile ~
https://dk521123.hatenablog.com/entry/2020/04/14/000000
Docker ~ 基本編 / dockerコマンド ~
https://dk521123.hatenablog.com/entry/2020/04/13/000000
Docker ~ 基本編 / docker container コマンド ~
https://dk521123.hatenablog.com/entry/2022/01/20/000000
Docker ~ 基本編 / レポジトリに関するコマンド ~
https://dk521123.hatenablog.com/entry/2023/01/21/000000
Docker ~ ファイルをコンテナにコピー ~
https://dk521123.hatenablog.com/entry/2022/04/27/000000
Docker ~ クリーンアップ / prune ~
https://dk521123.hatenablog.com/entry/2023/07/17/230956
Docker ~ GO言語 ~
https://dk521123.hatenablog.com/entry/2022/01/14/102719
Docker ~ Webサーバ ~
https://dk521123.hatenablog.com/entry/2022/02/22/000000
Docker ~ WordPress
https://dk521123.hatenablog.com/entry/2022/04/29/000000
Docker ~ Redmine
https://dk521123.hatenablog.com/entry/2023/01/09/000000
Docker compose ~ 環境構築編 ~
https://dk521123.hatenablog.com/entry/2022/04/28/000000
Docker compose ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2022/05/21/222910
Docker compose ~ 基本編 ~
https://dk521123.hatenablog.com/entry/2020/04/11/000000
Docker compose ~ docker-compose.yml ~
https://dk521123.hatenablog.com/entry/2020/12/18/152949
Docker compose ~ Version 2 ~
https://dk521123.hatenablog.com/entry/2023/01/02/000000
Docker compose ~ PostgreSQL
https://dk521123.hatenablog.com/entry/2023/07/20/025544
Docker compose ~ Pgweb/pgAdmin ~
https://dk521123.hatenablog.com/entry/2023/08/10/111919
Dockerfile / Docker Compose でシェルを実行する
https://dk521123.hatenablog.com/entry/2023/07/21/234509
Docker ~ トラブルシュート方法 ~
https://dk521123.hatenablog.com/entry/2023/12/12/034018
Docker によるトラブルシューティング
https://dk521123.hatenablog.com/entry/2017/09/24/162257
Windows / Docker Desktop でのトラブルシューティング
https://dk521123.hatenablog.com/entry/2020/12/11/115814
Terminal ~ Windows Terminal ~
https://dk521123.hatenablog.com/entry/2020/12/10/094125
Terminal ~ Cmder ~
https://dk521123.hatenablog.com/entry/2023/12/27/002919