ย้ายที่เก็บ local docker data

Photo by Erda Estremera on Unsplash

Docker data ประกอบไปด้วย images, storage, containers บางที build image ไปเรื่อย ๆ quota directory ก็เต็มได้ แล้วเราก็อาจจะไม่ได้อยากทำ private image repository แต่แค่อยากย้ายที่เก็บ docker image

ตอนแรกทำตามไกด์นี้ https://www.ibm.com/docs/en/cloud-private/3.1.1?topic=pyci-specifying-default-docker-storage-directory-by-using-bind-mount แต่เจอปัญหาต่อไปนี้

  1. ต้องลบ image, storage ทิ้งแล้วสร้างใหม่
  2. ต้อง bind directory ใหม่ กับ directory เดิม ถ้าเผลอไปลบอะไรที่เดิม ที่ใหม่ก็หายด้วยนะ (เผลอทำมาแล้ว เพลีย…)
  3. ในบทความไม่ได้สอน auto bind ถ้าไม่ได้ทำ หลัง restart มาต้อง bind ใหม่ทุกครั้ง

หลังจากเผลอลบข้อมูลทิ้ง เลยไปเจอ guide ใหม่ที่ https://www.guguweb.com/2019/02/07/how-to-move-docker-data-directory-to-another-location-on-ubuntu/ โดยมีขั้นตอนต่อไปนี้

  1. หยุด Docker daemon
sudo service docker stop

2. เพิ่ม configuration ที่ไฟล์ /etc/docker/daemon.json เพื่อแก้พาธของ Docker data-root

{
“data-root”: “/พาธ/ของ/docker/ใหม่”
}

3. ก๊อปปี้ข้อมูลไปที่ใหม่

sudo rsync -aP /var/lib/docker/ /พาธ/ของ/docker/ใหม่

4. เปลี่ยนชื่อไดเร็กทอรี่เก่า

sudo mv /var/lib/docker /var/lib/docker.old

5. เริ่ม Docker daemon ใหม่

sudo service docker start

6. ถ้าไม่มีปัญหาอะไรก็ลบไดเร็กทอรี่เก่าได้เลย

sudo rm -rf /var/lib/docker.old

--

--