Bila partisi utama anda kepenuhan, dan docker banyak komplain karena kekurangan space, selain menggunakan hardisk yang lebih besar bisa juga diakali dengan memindahkan data ke partisi yang berbeda, contoh kondisi hardisk saya saat ini
$ sudo df -h # output Filesystem Size Used Avail Use% Mounted on udev 6.8G 0 6.8G 0% /dev tmpfs 1.4G 2.8M 1.4G 1% /run /dev/nvme0n1p2 28G 25G 1.9G 94% / tmpfs 6.8G 0 6.8G 0% /dev/shm tmpfs 5.0M 4.0K 5.0M 1% /run/lock /dev/nvme0n1p4 200G 7.5G 182G 4% /home /dev/nvme0n1p1 511M 3.5M 508M 1% /boot/efi tmpfs 1.4G 44K 1.4G 1% /run/user/114
docker by design, menyimpan data, baik berupa image atau volume di dalam folder /var/lib/docker
, untuk mengetahui ukuran folder gunakan perintah
sudo du -sh /var/lib/docker # output 14G /var/lib/docker
lokasi ini bisa diverifikasi dengan perintah
docker info -f '{{ .DockerRootDir }}' # output /var/lib/docker
pada tampilan hardisk diatas partisi /
, tinggal tersisa 1.9 GB, sementara /home sangat banyak tersisa, berdasarkan informasi tersebut akan saya pindahkan folder data docker dari /var/lib/docker
ke /home/tommy/docker
Dengan cara yang akan dijelaskan dibawah, sangat memungkinkan untuk menggunakan cloud storage seperti S3, tetapi sangat tidak disarankan karena akan memperlambat proses Docker, dan juga akan terasa semakin lambat, karena setiap perubahan perlu menulis dan membaca dari remote storage tersebut.
Berikut ini 4 langkah untuk memindahkan lokasi data root docker ke tempat/partisi yang baru :
1. Berhentikan service docker
sudo systemctl stop docker
2. Copy data ke folder baru
sudo mv /var/lib/docker/* /home/tommy/docker/
3. Update config docker, untuk lokasi yang baru
Bila belum ada buat file /etc/docker/daemon.json
, yang isinya
{ "data-root": "/lokasi/folder/yang/baru" }
pada contoh saya menjadi
{ "data-root": "/home/tommy/docker" }
4. Jalankan service docker
sudo systemctl start docker
verifikasi lokasi root datanya sudah berubah
$ docker info -f '{{ .DockerRootDir }}' # output /home/tommy/docker