Lệnh Docker : Commit, Load

Cập nhật Image lưu Image ra file và nạp Image từ file trong Docker

Từ container cập nhật lại vào image với lệnh docker commit, cách lưu image ra file trên đĩa và nạp một file image vào Docker

Lưu Container thành Image

Như đã biết từ một Image bạn có thể sinh ra các Container, mỗi Container là bản thực thi của Image, khi sử dụng Container bạn có thể cấu hình, cài đặt thêm vào nó các package, đưa thêm dữ liệu …

Đến một lúc, bạn muốn lưu những thay đổi này và ghi lại thành một Image để sau này bạn sinh ra các Container khác bản thân nó đã chữa những thay đổi bạn đã lưu. Giả sử bạn có một container có tên (hoặc id) là mycontainer nếu muốn lưu thành image thực hiện lệnh:

docker commit mycontainer myimage:version

Trong đó myimageversion là tên và phiên bản do bạn đặt. Nếu lưu cùng tên với image tạo ra container này, coi như image cũ được cập nhật mới.

Sau lệnh này trong hệ thống docker của bạn có thêm image với tên bạn đặt. Thực hành ví dụ sau: (tạo một container hệ điều hành debian, cài đặt thêm vào nó gói net-tools, lưu container này lại thành image, tạo một container từ image mới có)

Tải hệ điều hành debian về nếu chưa có :

docker pull debian
docker

Tạo / chạy một container đặt tên là mydebian của debian :

docker run -it --name mydebian debian

Cài SSH Client vào container mydebian Do debian cung cấp ở image trên không kèm theo net-tools, nên muốn chạy net-tools thì sẽ cài thêm. Giờ đang ở lệnh bash của container gõ lệnh sau để cài:

apt install net-tools

Sau khi cài đặt bạn đã có thể sử dụng lệnh netstat -nltp trên container này của bạn!

Lưu container lại thành image: trước tiên nếu container đang chạy thì cho dừng lại :

docker stop mycontainer

Gõ lệnh lưu container mycontainer thành image đặt tên là debian-net-tools:v1

docker commit mydebian debian-net-tools:v1

Như vậy bạn đã có một image mới, nó chính là debian có cài thêm net-tools

Bạn có thể xóa đi container cũ và tạo ra container mới sinh ra từ image mới :

#xóa container cũ
docker container rm mydebian

Tạo mới từ image debian-net-tools:v1

docker run --name myde -it debian-net-tools:v1

Khi container mới tạo ra (newcontainer), chạy nó đã có sẵn net-tools

Lưu Image ra file, Nạp image từ file

Nếu muốn chia copy image ra máy khác ngoài cách đưa lên repository có thể lưu ra file, lệnh sau lưu image có tên myimage rà file

#lưu ra file, có thể chỉ ra đường dẫn đầy đủ nơi lưu file
docker save --output myimage.tar myimage

File này có thể lưu trữ, copy đến máy khác và nạp vào docker, để nạp vào docker

docker load -i myimage.tar

Đổi tên một Image đang có :

docker tag image_id imagename:version

Chúc các bạn thành công !

Bài Trước. Bài Sau.

Picture of Tobi

Tobi

Chào mọi người, mình là Quyền - hiện đang công tác tại Phòng Kỹ thuật AZDIGI. Trong quá trình làm việc mình có cơ hội được tiếp xúc với khá nhiều các vấn đề liên quan đến Website/Hosting/VPS/Server, do đó mình viết lại các hướng dẫn này nhằm chia sẻ kiến thức, cũng như tạo một môi trường để chúng ta giao lưu và học hỏi lẫn nhau, trau dồi thêm nhiều kiến thức bổ ích hơn nữa.