Trong Docker, “export image” (xuất image) đề cập đến quá trình tạo một bản sao của image và lưu trữ nó thành một file đơn giản (thường là định dạng tar) để có thể di chuyển, chia sẻ hoặc lưu trữ trên một máy tính khác hoặc trong một địa điểm nào đó.
Khi bạn export image, Docker sẽ tạo ra một file tar chứa tất cả các lớp (layers) và thông tin cần thiết để xây dựng image đó. File tar này có thể được chuyển đến một máy tính khác, lưu trữ trên một ổ đĩa hoặc đẩy vào một registry Docker riêng tư.
Có một số lý do mà chúng ta cần phải export image trong Docker, bao gồm:
- Sao lưu và khôi phục: Export image cho phép bạn tạo bản sao lưu của một image và lưu trữ nó. Khi cần thiết, bạn có thể khôi phục image từ file tar đã xuất trước đó, mà không cần phải tải lại từ registry Docker.
- Chia sẻ và cài đặt offline: Bằng cách xuất image thành file tar, bạn có thể chia sẻ nó với những người khác hoặc triển khai trên các máy tính không có kết nối internet. Điều này hữu ích trong các môi trường cô lập hoặc khi cần triển khai ứng dụng trong các mạng không được kết nối với internet.
- Di chuyển giữa các môi trường: Khi bạn muốn triển khai ứng dụng của mình từ môi trường phát triển sang môi trường thử nghiệm hoặc sản xuất, việc export image giúp bạn dễ dàng di chuyển và cài đặt image trên các máy chủ khác nhau.
Lưu ý rằng việc export image chỉ xuất ra lớp (layer) và thông tin để xây dựng image đó, không bao gồm dữ liệu và trạng thái của container cụ thể. Để lưu trữ hoặc chia sẻ dữ liệu và trạng thái container, bạn có thể sử dụng các công cụ khác như Docker commit hoặc Docker volumes.
Để xuất (export) một image trong Docker để lưu trữ hoặc chia sẻ, bạn có thể sử dụng lệnh docker save
. Sau đây là cú pháp lệnh để xuất một image và lưu trữ nó vào một file tar:
docker save -o <tên_file.tar> <tên_image>
Trong đó:
<tên_file.tar>
là tên của file tar muốn lưu trữ image vào. Ví dụ:myimage.tar
.<tên_image>
là tên của image muốn xuất. Ví dụ:hoanghd164/gitlab:1.0.1
.
Sau khi chạy lệnh này, Docker sẽ xuất image thành một file tar có tên và vị trí bạn đã chỉ định.
Ví dụ bạn hãy list các image có sẵn trong docker.
$ docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
hoanghd164/gitlab 1.0.1 1fbf0382df39 10 hours ago 4.09GB
jenkins/jenkins latest 7781dbe05ceb 2 days ago 462MB
hoanghd164/zabbix-server 1.0.5 0efde73b00d6 4 weeks ago 2.01GB
hoanghd164/devops-tools 1.0.1 5db2ec10570d 5 weeks ago 881MB
Tôi đóng gói Jenkins.
docker save -o jenkins.tar 7781dbe05ceb
Kết quả.
$ ls -al | grep jenkins
-rw-------@ 1 hoanghd staff 471129088 Jun 23 09:19 jenkins.tar
Sau khi đã lưu trữ file tar, bạn có thể chuyển nó sang máy tính khác, lưu trữ trong một địa điểm trên cloud, hoặc đẩy (push) nó vào một registry Docker riêng tư bằng cách sử dụng lệnh docker load
hoặc docker push
.
Ví dụ, để tải image từ file tar vào một Docker registry riêng tư, bạn có thể sử dụng lệnh docker load
:
docker load -i <tên_file.tar>
Hy vọng rằng điều này sẽ giúp bạn xuất và lưu trữ image Docker một cách thành công để sau này sử dụng hoặc đẩy vào một registry riêng tư.