Câu trả lời:
Tôi tin rằng trong hướng dẫn này, bạn sẽ có một lời giải thích tốt.
Bạn có thể thay đổi thư mục cơ sở lưu trữ của Docker (nơi chứa container và hình ảnh) bằng cách sử dụng tùy chọn -g khi khởi động trình nền Docker.
Ubuntu / Debian: chỉnh sửa
/etc/default/docker
tệp của bạn với-g
tùy chọn:DOCKER_OPTS="-dns 8.8.8.8 -dns 8.8.4.4 -g /mnt"
Fedora / Centos: chỉnh sửa
/etc/sysconfig/docker
và thêm-g
tùy chọn trong biến other_args: ex.other_args="-g /var/lib/testdir"
. Nếu có nhiều hơn một tùy chọn, hãy đảm bảo bạn gửi chúng vào "". Sau khi khởi động lại, (docker dịch vụ khởi động lại) Docker nên sử dụng thư mục mới.Sử dụng symlink là một phương pháp khác để thay đổi lưu trữ hình ảnh.
Thận trọng - Các bước này phụ thuộc vào / var / lib / docker hiện tại của bạn là một thư mục thực tế (không phải là một liên kết tượng trưng đến một vị trí khác).
1) Dừng docker :
service docker stop
. Xác minh không có quá trình docker đang chạy ps giả2) Docker kiểm tra kép thực sự không chạy. Hãy xem thư mục docker hiện tại: ls
/var/lib/docker/
2b) Tạo bản sao lưu -
tar -zcC /var/lib docker > /mnt/pd0/var_lib_docker-backup-$(date +%s).tar.gz
3) Di chuyển
/var/lib/docker
thư mục đến phân vùng mới của bạn:mv /var/lib/docker /mnt/pd0/docker
4) Tạo liên kết tượng trưng:
ln -s /mnt/pd0/docker /var/lib/docker
5) Hãy xem qua cấu trúc thư mục để chắc chắn rằng nó trông giống như trước mv:
ls /var/lib/docker/
(lưu ý dấu gạch chéo vào6) Bắt đầu sao lưu docker
service docker start
7) khởi động lại container của bạn để giải quyết liên kết tượng trưng)
Để thay đổi data
thư mục trong docker
nó cần phải được chạy với tùy chọn -g /my/data
. Trong tôi /etc/default/docker
đặt:
DOCKER_OPTS="-g /srv/docker"
Xem thêm ghi chú của tôi ở đây .
Để thay đổi data
thư mục trong lxc
tôi đặt vào /etc/lxc/lxc.conf
:
lxc.lxcpath = /srv/lxc
Để mở rộng câu trả lời của @ MattK:
Các tài liệu Docker vào việc kiểm soát các daemon Docker cho thấy rằng nền tảng độc lập cách để làm điều này là:
chỉnh sửa tệp /etc/docker/daemon.json để chứa dòng
{
"data-root": "/mnt/docker-data",
(...)
}
nơi /mnt/docker-data
thư mục mà bạn muốn các hình ảnh docker và container sống.
Sau đó
sudo systemctl restart docker
Bạn có thể kiểm tra xem nó có hoạt động không bằng cách chạy
docker info
và tìm nội dung của dòng bắt đầu bằng Docker Root Dir:
.
Xem thêm https://stackoverflow.com/a/50217666/2209313 và https://unix.stackexchange.com/q/452368/36043 .