NGUYEN XUAN CUONG

http://nxcuong.ued.vn

Bài 4 - 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
Bài 4 - Cập nhật Image lưu Image ra file và nạp Image từ file trong 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

Trogn đó myimage và version 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.

THỰC HIỆN TẠO MỘT CONTAINER HỆ ĐIỀU HÀNH UBUNTU, CÀI DẶT CHO NÓ NGINX, LƯU CONTAINER NÀY THÀNH IMAGE VÀ TẠO MỘT CONTAINER MỚI TỪ IMAGE MỚI CÓ

Tải image ubuntu về máy

root@docker:~# docker pull ubuntu

Tạo và chạy một container và đặt tên là U1, hostname cho docker là U1-nginx của image Ubuntu vừa tải về ở trên

root@docker:~# docker run -it --name "U1-nginx" -h Ubuntu-Nginx ubuntu:latest

Cài đặt NGINX trên docker 

root@Ubuntu-Nginx:/# apt update -y
root@Ubuntu-Nginx:/# apt install systemctl -y
root@Ubuntu-Nginx:/# apt install nginx -y
root@Ubuntu-Nginx:/# systemctl enable nginx
root@Ubuntu-Nginx:/# nginx -v

Thoát và dừng container vừa tạo

root@Ubuntu-Nginx:/# exit
root@docker:~# docker stop U1-nginx

Lưu contailer có tên U1-nginx thành image và đăng tên là Ubuntu-nginx:v1

root@docker:~# docker commit U1-nginx ubuntu-nginx:v1

Kiểm tra lại các image hiện có

root@docker:~# docker images

ta có 2 image, ubuntu là bản gốc đầu tiên khi pull từ trang docker về, bản ubuntu-nginx là image cúng ta mới commit xong

Tạo một container mới từ image mới ubuntu-nginx

root@docker:~# docker run -it --name "U2-nginx" -h Ubuntu-Nginx ubuntu-nginx:v1

kiểm tra Nginx có đang hoạt động đúng với image đã commit không

root@Ubuntu-Nginx:/# systemctl status nginx

 

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

root@docker:~# docker save --output ubuntu-nginx.tar ubuntu-nginx:v1

Nạp file này vào docker, File này có thể lưu trữ, copy đến máy khác
Để nạp vào docker : docker load -i myimage.tar

root@docker:~# docker load -i ubuntu-nginx.tar

Đổi tên một Image đang códocker tag image_id imagename:version

root@docker:~# docker tag ubuntu-nginx:v1 ubuntu-new:v1
Bạn đã không sử dụng Site, Bấm vào đây để duy trì trạng thái đăng nhập. Thời gian chờ: 60 giây