Bagaimana cara memberi tahu Docker untuk menyimpan dan menjalankan kontainer di drive eksternal

Saya menjalankan Docker di Ubuntu Linux. Saya memiliki Dockerfile itu membawa banyak data dari tempat lain. Saya menempatkan Dockerfile pada drive eksternal yang telah saya mount ke filesystem lokal (ext4). Kemudian saya menjalankan build dari dalam sistem file drive eksternal itu.

docker build -t mycontainer .

Saya melihat penggunaan drive saat wadah sedang dibangun. Semua penggunaan drive ada di sistem file root, bukan drive yang terpasang.

Saya telah membaca beberapa artikel tentang mengubah Root/base Docker dari /var/lib/docker ke lokasi lain, tapi sejauh ini yang saya dapatkan adalah docker.service: Failed with result 'exit-code'.

Saya juga mencoba menambahkan -g options dalam /lib/systemd/system/docker.service berkas:

ExecStart=/usr/bin/dockerd -H fd://  # originalExecStart=/usr/bin/dockerd -g /new/path/docker -H fd://  # updated

Ini juga tidak membantu.

Bagaimana Saya bisa memberi tahu Docker untuk menggunakan drive eksternal?

Beberapa hal membantu saya mendapatkan ini bekerja. Pertama, saya memasang sistem file eksternal di direktori home, yang mungkin menyebabkan beberapa masalah izin. Jadi saya remounted filesystem bawah /mnt dan izin diperbarui dan kepemilikan sebagai berikut:

# chown -R root:root /mnt/external-drive/docker-base# chmod 701 /mnt/external-drive/docker-base

Kemudian Aku ciptakan /etc/docker/daemon.json file dengan konten ini:

{    "graph": "/mnt/external-drive/docker-base"}

Saya memulai kembali layanan buruh pelabuhan dan semuanya tampak baik-baik saja. Melakukan docker build dan drive eksternal menerima semua konten.