💽

Dockerのイメージは外付けドライブに保存しよう

2023/07/19に公開

Dockerのイメージが肥大化し、パソコンの容量を圧迫していませんか?

docker imagesコマンドで自分のローカルに保存されているDockerのイメージがどれくらいの容量を使っているのか確認できます。

docker images                                                             
REPOSITORY            TAG           IMAGE ID       CREATED         SIZE
<none>                <none>        a7bc553b58ec   3 days ago      2.71GB
atcoder-problem       latest        40ae62edfc33   11 days ago     1.01GB
debian                stable-slim   550e10a6cc33   2 weeks ago     74.8MB
catthehacker/ubuntu   act-latest    6005166a4393   2 weeks ago     1.03GB
alpine                3.16.3        2b4661558fb8   8 months ago    5.29MB
alpine                3.11          1fd5850ccf13   20 months ago   5.37MB

私はDockerのイメージをポータブルSSDに保存することでパソコン本体の容量を節約しています。

最強の外付けポータブルドライブを用意する

外部ドライブを使う最大のデメリットは転送速度です。

私はM.2規格のSSDをThunderbolt3.0で接続しています。Thunderbolt接続の場合は専用のケーブルが必要です。

https://www.amazon.co.jp/dp/B09JBYWVVL?ref_=cm_sw_r_cp_ud_dp_BPTW8X5SFWXPHS5TFDT5

https://www.amazon.co.jp/dp/B07YB4DDRB?ref_=cm_sw_r_cp_ud_dp_7KPZSED38A663JE33EP6:

私の環境ではノートパソコンに搭載されているディスクと同等のスピードで外部SSDに読み書きできます。

ネイティブドライブへの接続
内臓ドライブへのアクセス速度
外付けドライブへの接続
外付けドライブへのアクセス速度

Dockerイメージに対するシンボリックリンクを作成する

ローカルに保存されているDockerイメージはDocker.rawというファイルにまとめて保存されています。

私はDocker.rawを外づけドライブに配置し、Docker.rawのシンボリックリンクを作りました。

私の場合Docker.raw~/Library/Containers/com.docker.docker/Data/vms/0/data/に保存されていました。

ll ~/Library/Containers/com.docker.docker/Data/vms/0/data/
.rw-r--r--@ 64G appare45 18 7 23:32 Docker.raw

これを外付けドライブにコピーしてシンボリックリンクを作成します。

cp -pv ~/Library/Containers/com.docker.docker/Data/vms/0/data/Docker.raw /Volumes/1TB202204/apps/Docker/Docker.raw
/Users/appare45/Library/Containers/com.docker.docker/Data/vms/0/data/Docker.raw -> /Volumes/1TB202204/apps/Docker/Docker.raw
ln -svf /Volumes/1TB202204/apps/Docker/Docker.raw ~/Library/Containers/com.docker.docker/Data/vms/0/data/Docker.raw
/Users/appare45/Library/Containers/com.docker.docker/Data/vms/0/data/Docker.raw -> /Volumes/1TB202204/apps/Docker/Docker.raw

これでdocker imagesを実行するとこれまでと同じようにコンテナ一覧が表示されます。

コンテナのビルド時間も体感ではそこまで変わらない気がします。(移動前の時間を測るのを忘れました、すみません)

パソコンの容量が限界な方はぜひお試しください。

Discussion