Backup & Restore Image Container in Docker

Tóm tắt: Docker rất tiện lợi để triển khai ứng dụng một cách nhanh và tiện lợi. Vì vậy việc sao lưu và phục hồi bản sao lưu của một image container trong Docker là một điều gần như là hiển nhiên. Bài viết gồm 2 phần backup và restore được trình bày cụ thể với các dòng lệnh từ Docker.

Docker Container Backup

Một bản image của container đang chạy. Ta cần chụp hình trạng thái hiện tại của nó để đưa vào sao lưu chúng. Qua trình này được gọi là snapshort.
Trước tiên ta cần biết được Docker hiện có bao nhiêu container đang chạy. Bước này cũng giúp ta biết được ID của mỗi container để ta khai nào cần sao lưu container nào.

docker ps

Dùng lệnh commit để tạo ra một bản snapshort. Với -p (container tạm dừng để snapshot). 8e02b2949b57 là ID của một container và container1 là tên của một container được sao lưu.

docker commit –p 8e02b2949b57 container1

Để xem lại kết quả sao khi được sao lưu.

docker images

Qua trình sao lưu đã được thực hiện xong. Chúng ta có thể redeploy phiên bản vừa backup dưới dạng image. Hay xuất bản image container về tập tin .tar.

docker login
docker push container1
// export to file
docker save –o ~/container1.tar container1 // export file container1.tar

Docker Container Restore

Ta đã có phiên bản sao lưu dưới dạng image. Để chạy nó ta dùng lệnh run. Nhưng nếu tập tin đang chưa ở một nơi khac của ổ đĩa chư không chưa trong docker thì ta cần phải load nó lên trước khi thực hiện lệnh run.

docker load –i ~/container1.tar

Sau đó kiểm tra image xem nó đã được tải lên hay chưa

docker images

Kết quả sẽ là danh sách các images đang chứa trong Docker Engine của bạn. Để restore bạn cần xác định namecủa container. Sau đó chạy lại dòng lệnh docker run như ta đã chạy lúc tạo ở đầu. Nên nhớ rằng trong bản sao lưu (backup) chỉ chứa nội dụng của container chứ không chứa tham số mà bạn từng thiết lập để container hiểu máy tính vật lý (như port, mounts…). Do đó dòng lệnh chạy lại cần phải có các thông số đó.

docker run --name mynginx1 -p 80:80 -d nginx-backup-01

Trong đây nginx-backup-01 là trên tôi đã sao lưu ở phần trên (tương đương với container1 ở dòng lệnh trên). Và mynginx1 chỉ là một cái tên cho container thôi. -p 80:80 là thông tin thiết lập để có thể chạy port 80 trên web.


Tiển Nguyễn
VTS Space

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *