20
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

お題は不問!Qiita Engineer Festa 2023で記事投稿!

WSL2 + docker を使っていると PC の容量が足りないよ!っていうときに見る記事

Last updated at Posted at 2023-06-16

※この記事は社内 wiki にあった記事を移植したものです!ところどころ古いものがありますがご了承ください

docker の扱いを知らなくてこうなってしまったので、Ubuntu の容量を減らします。

image.png
image.png

Ubuntu の容量を減らす

# 必要なコンテナを保護する
docker compose up

# いったん確認
docker image ls -a
# ↓ どんどんつよくなる ↓
# dangling image を削除
docker image prune

# unused image を削除
docker image prune -a

# image と他を削除
docker system prune -a

# image と他と volume を削除
docker system prune -a --volumes

# はじめに立ち上げたコンテナを止める
docker compose down

各コマンドの詳細はここを参照 -> https://docs.docker.jp/config/pruning.html

docker system prune -a --volumes をするとこうなりました!笑っちゃいました。


Windows から見た WSL の容量を減らす

さて、このコマンドで内部 (Ubuntu) をきれいにしても、外部 (Windows) から見た容量は変わりません。なので、Windows 側から見る容量を減らします。

まずは PowerShell を開きます。管理者権限が必要かも。

はじめに WSL をシャットダウン

wsl --shutdown

サイズ最適化

optimize-vhd -Path C:\Users\dareka\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu20.04onWindows_79rhkp1fndgsc\LocalState\ext4.vhdx -Mode full

※ ここででてくるパスは、対象のディレクトリに行った後に、 [Shift] を押しながら右クリックをすると現れる [パスのコピー] という隠しコマンドを使うと楽に取得できます。

ここを参考にしました。

-> https://www.curict.com/item/f4/f46da60.html

optimize-vhd とやらができなければこちら。私はこちらでやりました。

ここで手順を間違えると最悪 WSL が使えなくなるのでご注意ください。

diskpart
select vdisk file="C:\Users\dareka\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu20.04onWindows_79rhkp1fndgsc\LocalState\ext4.vhdx"
attach vdisk readonly
compact vdisk
detach vdisk
exit

ちなみに、ファイルへのパスをコピーするときには Shift + 右クリックが便利です。メニューに「パスのコピー」がでてきます。

diskpart の操作はここを参考にしました。

-> https://qiita.com/siruku6/items/c91a40d460095013540d

結果

無事に容量を減らせました

image.png

追記

社内でこのような話がありました。容量をさらにあけたい方はどうぞ。(抜粋します。)


docker system prune -a --volumens で容量をあける方法の記事がながれていましたが、どうもそれだけでは消えないようで、
↑のコマンドを実行しても、130Gほどのファイルが残っているようでした。

root@:/# du -sh  /var/lib/docker/

130G    var/lib/docker/

なので、

rm -rf /var/lib/docker/volumes/*

とやってみました。
そうしたら、99%までいってしまっていたストレージの使用容量が、

~$ df
Filesystem                1K-blocks     Used Available Use% Mounted on
udev                        8057676        0   8057676   0% /dev
tmpfs                       1624784     2276   1622508   1% /run
/dev/mapper/vgubuntu-root 242730404 78103552 152223960  34% /
tmpfs                       8123908   363636   7760272   5% /dev/shm
tmpfs                          5120        4      5116   1% /run/lock
tmpfs                       8123908        0   8123908   0% /sys/fs/cgroup

にまで戻りました。Dockerはゴミファイル( docker system prune とやっても消えないファイル)が大量に出るのでしょうか。

※消した後は docker の deamon を再起動してください。

sudo service docker start
20
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
20
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?