October 16, 2021

Hướng dẫn push, pull image từ Docker Hub

Ở phần trước các bạn đã tạo Image, phần này mình sẽ push Image lên Docker Hub sau đó dùng máy Windows pull Image và chạy ứng dụng đó trên máy Windows. Nếu không dùng Docker thì chúng ta phải cài đặt môi trường trên máy Windows như thế thật bất tiện.

1.Push Image

Phần này khá đơn giản, mình làm tiếp phần trước nên các bạn nào chưa đọc các bài trước thì các bạn xem lại rồi mới tiếp tục nha.
Trước tiên, bạn phải tạo “tag” từ image và repositories

docker tag nginx_image cloudace/demo:part2

image của mình tên là : nginx_image
repository là cloudace/demo
tên tag mình tạo là “part2”.

thử nhìn lại tag mình vừa tạo với lệnh:

docker image ls

Tiếp theo push nó lên docker hub

docker push cloudace/demo:part2

Các bạn có thể kiểm tra xem mình đã push như vậy đã lên chưa bằng trình duyệt.
Chọn biểu tưởng con cá voi của Docker và làm như hình

mình vừa push lên cái tag tên “part2” 11 phút trước.

Vậy là xong việc push Image rồi đó các bạn.
Giờ mình sẽ chuyển sang 1 máy tính khác, Windows 7 professional, dùng Docker Toolbox.
Link để cài đặt và tại sao lại dùng Docker Toolbox mình đã cung cấp ở phần trước rồi nha các bạn.

2.Pull Image và run ứng dụng

Với cái Docker Toolbox này thì nó hơi khác một chút.

Gồm 2 phần  là Docker Quickstart

Terminal và Kitematic(Alpha)

 

Mình sẽ dùng Docker Quicktask Terminal để pull Image và tạo container.
Trước tiên phải login

docker login

Bạn login bằng tài khoản và mật khẩu docker hub mình hướng dẫn ở phần trước nhá.

Login thành công thì nhận được thông báo như hình trên.

pull image với lệnh sau:

docker run -p 9000:80 cloudace/demo:part2

các bạn cũng phải khởi tạo port cho nó
cloudace/demo là repositories của mình.
part2 là tag mình tạo khi push. có thể bạn push nhiều tag, nhưng pull về phải chỉ định tag nào cần pull nha các bạn

Thật ra câu lệnh trên là run image, nhưng vì nó không tìm thấy image đó trên máy của bạn, nó sẽ kiểm tra trong repositories của bạn, nếu có nó sẽ tự pull về và run luôn. Mình thường làm vậy cho nhanh.
Sau khi run, 1 container với tên được tạo tự động sẽ được khởi tạo.
Tiếp theo chúng ta sẽ thao tác với Kitematic.

Khi bạn nhìn thấy màn hình này

trên Docker Quicktask Terminal nghĩa là đã pull thành công và container cũng đã được khỏi tạo.
Giờ bạn mở Kitematic lên và login bằng tài khoản Docker Hub. Nếu bạn login trước khi run đoạn code trên, thì tắt Kitematic đi và mở lại mới thấy được container vì nó không tự động refesh.

bên trái là container được build lúc nãy với tên tự động. Bên trái là các image khác mà mọi người up lên docker hub.

Giờ bạn nhấp vào container của mình bên trái

Phía trên là các nút cho phép bạn dừng hay khởi động lại container. Phía trên các bạn có thể nhìn thấy container của chúng ta đang ở trạng thái running.

Bên dưới phần Volumes. Bạn nhấm vào setting.

mục /var/www/html bạn cần trỏ tới thư mục website của mình.
Mình đã tạo sẳn thư mục website ngoài Desktop, giờ mình sẽ link đến đó bằng cách click vào nút change

Bạn thấy container của bạn đã chuyển sang trạng thái updating.
Giờ nhấn vào nút Home

sau đó nhấn vào nút biểu tượng khoanh đỏ để view trên trình duyệt.

Đây là những gì có được.
Bạn có thể test bằng cách stop container và F5 web trên, sau đó restart và F5 web để biết kết quả.

Lúc này các bạn có thể đóng gói môi trường code và chia sẽ cho các lập trình viên khác.
Bạn có thể start nhiều container cùng lúc mà không sợ hiện tượng lag như đối với chạy máy ảo.

Với bài viết này, hy vọng chúng ta có thêm kiến thức về ba sản phẩm nữa của Google Cloud Platform. Khi thực hành có chỗ nào chưa hiểu, cần support, các bạn hãy liên hệ với các chuyên gia – Cloud Ace Việt Nam – để được hỗ trợ tốt hơn.

Pham Van Tuyen

Anh Tuyen Pham là Tổng giám đốc của Cloud Ace Việt Nam và là GDG Cloud HCM Chapter Lead. Anh là diễn giả quen thuộc tại các sự kiện do Google tổ chức tại Việt Nam như Kubernetes Vietnam, Google Cloud Next Extended. Anh đã có các chứng chỉ của Google Cloud như Google Cloud Architect và Data Engineer.

View all posts by Pham Van Tuyen →