Website được thiết kế tối ưu cho thành viên chính thức. Hãy Đăng nhập hoặc Đăng ký để truy cập đầy đủ nội dung và chức năng. Nội dung bạn cần không thấy trên website, có thể do bạn chưa đăng nhập. Nếu là thành viên của website, bạn cũng có thể yêu cầu trong nhóm Zalo "CNTT" các nội dung bạn quan tâm.

Mặc định Docker lưu tại /var/lib/docker đổi thành /srv/docker

ICT

Mình muốn mọi service để trong /srv/ cho tiện quản lý.

Và thư mục docker để tại 1 ổ cứng khác thay vì mặc định.

Do đó, mình sẽ:

Chuyển /var/lib/docker thành /srv/docker VÀ docker sẽ để ở ổ cứng khác.

Đây là cách thực hiện:

1. Dừng Docker hoàn toàn

 
systemctl stop docker docker.socket containerd

Xác nhận:

docker info 2>/dev/null || echo "Docker stopped" 

2. Di chuyển dữ liệu Docker hiện có (nếu có)

⚠️ Chỉ làm nếu /var/lib/docker đang có dữ liệu cần giữ.

rsync -aHAX --numeric-ids /var/lib/docker/ /mnt/live/docker/

Kiểm tra:

ls /mnt/live/docker

3. Mount /mnt/live/docker/srv/docker

3.1 Tạo thư mục mountpoint

 
mkdir -p /srv/docker

3.2 Mount tạm thời (test)

mount --bind /mnt/live/docker /srv/docker

Kiểm tra:

df -h | grep docker

3.3 Mount vĩnh viễn qua /etc/fstab

Mở file:

nano /etc/fstab

Thêm dòng:

/mnt/live/docker  /srv/docker  none  bind  0  0

Áp dụng:

systemctl daemon-reload mount -a

4. Cấu hình Docker dùng data-root mới

Tạo / sửa:

mkdir -p /etc/docker
cat >/etc/docker/daemon.json <<EOF
{
 "data-root": "/srv/docker"
}
EOF

5. Khởi động lại Docker

 
systemctl start docker
systemctl status docker --no-pager

6. Kiểm tra xác nhận (bắt buộc)

 
docker info | grep "Docker Root Dir" 

Kết quả PHẢI là:

 
Docker Root Dir: /srv/docker

Và:

 
ls -ld /srv/docker
ls -ld /mnt/live/docker

→ inode giống nhau (bind mount).


7. (Khuyến nghị) Dọn /var/lib/docker

Sau khi xác nhận Docker chạy ổn:

 
rm -rf /var/lib/docker
ln -s /srv/docker /var/lib/docker

Mục đích:

  • tránh tool cũ ghi nhầm

  • giữ compatibility với script legacy


TÓM TẮT KIẾN TRÚC SAU CÙNG

 
/mnt/live/docker     (storage vật lý, disk lớn)
/srv/docker          (chuẩn quản trị Docker)
/etc/docker/daemon.json → data-root=/srv/docker
/var/lib/docker      → symlink → /srv/docker