69684


# docker image ls の様子

[code]

    % docker image ls             
    REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
    centos              latestapache01      4fbc5b50cf6d        3 days ago          237MB
    centos              latest              0d120b6ccaa8        8 days ago          215MB
    hoge01              latest              0d120b6ccaa8        8 days ago          215MB
    i_hoge01            latest              0d120b6ccaa8        8 days ago          215MB
    getting-started     latest              c6f3fc063e7b        2 weeks ago         179MB
    docker101tutorial   latest              85a75376a466        3 weeks ago         26.8MB
    <none>              <none>              f7d69a360512        3 weeks ago         110MB
    node                12-alpine           18f4bc975732        3 weeks ago         89.3MB
    ubuntu              latest              1e4467b07108        3 weeks ago         73.9MB
    ex                  latest              1e4467b07108        3 weeks ago         73.9MB
    hoge                latest              1e4467b07108        3 weeks ago         73.9MB
    hogehoge            latest              1e4467b07108        3 weeks ago         73.9MB
    python              alpine              f8a57363ff96        4 weeks ago         80.3MB
    nginx               alpine              ecd67fe340f9        5 weeks ago         21.6MB
    centos              7.5.1804            cf49811e3cdb        17 months ago       200MB
    
[/code]

# docker image rm イメージID の様子

下記のように docker image rm
にイメージIDを渡したところ何かがたくさんDeleteされたような出力がありました？どういうことなんでしょうか？

[code]

    % docker image rm c6f3fc063e7b
    Untagged: getting-started:latest
    Deleted: sha256:c6f3fc063e7b9b341c064188fb69fa770138b266909ca32ee9d4c5d977f3dfda
    Deleted: sha256:496bbddd881494c313dd736734861d1a3e506a2a9e4187832dc2f3d8df7e7c11
    Deleted: sha256:fec59b5454930ada4ee5fa33239869ac3a0fdf7217078aa8c9f0e4022d296342
    Deleted: sha256:ace75ab33f0c71f6dfd88d2e5ecdcf954f1a6de22dcf595735a3128f6a6e6f77
    Deleted: sha256:b7eab0de9eff73753e816ac7f645c27283d3669438a75c20f666a04044dec3b8
    Deleted: sha256:9782bb20d86e87c86aea4ce6bc5961c550889bd79e492e99aff12179c756ba36
    Deleted: sha256:5130f438bb63fbcf0d0770271261dde409fa34dd20d39bc751835ed9b2fe1377
    
[/code]


CC BY-SA 4.0
2020-08-19T04:14:06.950
69682
2020-08-19T05:39:00.560
2020-08-19T04:20:43.653
9008
9008
question
docker
docker image rm イメージIDとするとたくさん Deleted: sha256 が出力される


Docker イメージは **レイヤー構造** を持っており、Dockerfile からビルドする時に FROM で指定する「ベースイメージ」に加えて
RUN など記述した命令の結果がレイヤとして作成されます。

削除時に表示されているのは、これらのレイヤー情報 (中間ファイル) だと思います。

(コンテナイメージを `pull` するときも、ほとんどの場合は複数のハッシュ値が表示されていますよね？)

**参考:**

  * [Dockerイメージとコンテナの削除方法 - Qiita](https://qiita.com/tifa2chan/items/e9aa408244687a63a0ae)

> なんでこんなにいっぱいのファイルが削除されるんだろう？と思ったら中間ファイルらしい。  
>  `docker images -a` で中間ファイルが確認できる。

  * [Dockerイメージのレイヤの考え方とイメージの軽量化について](https://www.itbook.info/network/docker02.html)

>
> Dockerイメージを作成する際は、Dockerfileに記述された手順に沿って、1つのイメージを作成することになります。このとき作成されたイメージはレイヤ構造をしており、1つのレイヤは手順書中の1つ手順に該当します。そのため手順が1つ増える毎に新たなレイヤが追加されて
> いくことになります。また、このレイヤ構造はコンテナの実行時にもそのレイヤ構想は保持されています。


CC BY-SA 4.0
2020-08-19T05:39:00.560
69684
2020-08-19T05:39:00.560
3060
69682
answer