Đổi nơi lưu dữ liệu Docker

Trong Ubuntu, mặc định Docker sẽ lưu toàn bộ dữ liệu của nó trong thư mục /var/lib/docker. Trong trường hợp ổ cứng đầy, ta cần phải di chuyển thư mục này qua ổ đĩa khác. Bài này hướng dẫn cách di chuyển sao cho an toàn nhất.

Nếu chưa cài Docker và Compose, dùng script sau để cài:

# Docker
sudo apt update -y
sudo apt install apt-transport-https ca-certificates curl gnupg-agent software-properties-common -y
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
sudo apt update -y
sudo apt install docker-ce docker-ce-cli containerd.io -y
sudo usermod -aG docker $USER

# Compose
sudo curl -L "https://github.com/docker/compose/releases/download/v2.1.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

Trước khi bắt đầu sao chép, ta phải dừng Docker để tránh báo lỗi trong quá trình copy file.

sudo systemctl stop docker
sudo systemctl stop docker.socket

Tiếp theo, tạo file /etc/docker/daemon.json với nội dung như sau:

{
    "data-root": "/backup-disk/docker"
}

File này chứa property data-root chỉ ra đường dẫn đến thư mục lưu dữ liệu của Docker. Ở đây tôi chọn đường dẫn ở một ổ đĩa khác đã được mount vào thư mục /backup-file.

Sau đó, tiến hành copy với lệnh sau:

sudo cp -axT /var/lib/docker /backup-disk/docker

Khi mọi thứ xong xuôi, khởi động lại Docker.

sudo systemctl start docker

Từ giờ, Docker sẽ dùng thư mục mới để lưu dữ liệu. Ta cũng có thể dùng cách này để backup dữ liệu cho Docker, hoặc mang toàn bộ Docker từ máy này qua máy khác trong trường hợp nâng cấp máy.