💽
Dockerのイメージは外付けドライブに保存しよう
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接続の場合は専用のケーブルが必要です。
私の環境ではノートパソコンに搭載されているディスクと同等のスピードで外部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