Sunday, September 29, 2024

[Docker] Phần 12 – Push image lên Docker Hub

-

“Push Docker image lên Docker Hub” là quá trình tải lên (upload) một image đã được xây dựng trên máy tính của bạn lên Docker Hub, một dịch vụ registry Docker công cộng. Docker Hub cho phép bạn chia sẻ và lưu trữ các image Docker để người khác có thể tải xuống và sử dụng.

Tính năng này hữu ích trong các trường hợp sau:

  • Chia sẻ công khai: Bằng cách push image lên Docker Hub, bạn có thể chia sẻ image với cộng đồng Docker và các nhà phát triển khác. Điều này giúp tạo ra một nguồn tài nguyên chung để cung cấp và tải xuống các image được tạo bởi người khác.
  • Triển khai dễ dàng: Khi bạn muốn triển khai ứng dụng của mình trên một máy chủ hoặc môi trường khác, bạn có thể tải image từ Docker Hub thay vì phải xây dựng lại từ nguồn.
  • Quản lý phiên bản: Docker Hub cho phép bạn quản lý các phiên bản của image, cho phép bạn duy trì và cập nhật image theo thời gian.

Docker Hub cung cấp một tài khoản miễn phí có giới hạn, bao gồm:

  • Số lượng image tối đa: 1 image riêng tư và không giới hạn image công khai.
  • Số lượng repository tối đa: 1 repository riêng tư và không giới hạn repository công khai.
  • Lưu trữ tối đa: 100 MB cho image riêng tư và không giới hạn cho image công khai.
  • Sự hạn chế trong việc xây dựng tự động và tích hợp liên tục (CI/CD).

Để push một image lên Docker Hub, bạn cần thực hiện các bước sau:

  • Đảm bảo rằng bạn đã đăng ký một tài khoản Docker Hub (https://hub.docker.com/) và đã đăng nhập vào tài khoản đó từ máy tính của bạn.
  • Xác định image mà bạn muốn push lên Docker Hub. Đảm bảo rằng image đã được xây dựng và có một tag duy nhất.
  • Sử dụng lệnh docker tag để gắn tag vào image với tên đầy đủ của Docker Hub repository. Ví dụ: docker tag myimage:tagname username/repository:tagname.
  • Sử dụng lệnh docker push để push image lên Docker Hub repository. Ví dụ: docker push username/repository:tagname.
  • Đợi quá trình upload hoàn tất. Sau khi thành công, image sẽ được lưu trữ trên Docker Hub và có thể được tải xuống bởi người khác.

Lưu ý rằng việc push image lên Docker Hub yêu cầu quyền truy cập và xác thực tài khoản Docker Hub. Nếu bạn muốn push image lên một registry Docker riêng, bạn cần sử dụng các công cụ và quy trình tương tự, nhưng cần điều chỉnh cho phù hợp với registry riêng của bạn.

Ví dụ cụ thể:

Bây giờ giả sử mình có 1 image asterisk:latest như dưới.

$ docker image ls
REPOSITORY   TAG       IMAGE ID       CREATED              SIZE
asterisk     latest    4a51839d91ee   About a minute ago   2.52GB

Các bạn có thể push image này lên 1 repository Docker Hub với quy trình như sau.

Đầu tiên hãy login vào Docker Hub bằng command dưới.

docker login -u <ci_registry_user> -p <ci_registry_password>

Nếu login thành công, bạn sẽ nhận được output như vậy.

WARNING! Using --password via the CLI is insecure. Use --password-stdin.
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded

Bây giờ hãy đánh tag cho image bạn chuẩn bị push.

docker tag asterisk:latest <ci_registry>/asterisk:latest

Kết quả sau khi đánh tag cho image xong.

$ docker image ls
REPOSITORY            TAG       IMAGE ID       CREATED              SIZE
hoanghd164/asterisk   latest    ae1b2da89b31   About a minute ago   2.52GB

Giờ hãy dùng command dưới để push image lên Docker Hub nhé

docker push <ci_registry>/asterisk:latest

Đầu ra của bạn sẽ gần giống như vậy sau khi push xong.

The push refers to repository [docker.io/hoanghd164/asterisk]
6f0a3601676b: Pushed 
dbe9dfd85650: Pushed 
6517dc29875a: Pushed 
31a4d0d50e32: Pushed 
63d9ba95077d: Pushed 
96e058c79cd7: Pushed 
a378cc5f1e2e: Pushed 
0c965cd2bd05: Pushed 
1badbade2635: Pushed 
9899c41d36a4: Pushed 
0444cc0e78ed: Pushed 
ecdb53c0081e: Pushed 
0f1bbe31b0f3: Pushed 
174f56854903: Layer already exists 
latest: digest: sha256:905fef0aca40d2c257e63c4698f27b76ff4fe386d18b53b7742eba58c7d58e61 size: 3272

Giờ lên website của Docker Hub bạn đã thấy image của bạn đã sẵn sàng để sử dụng.

LEAVE A REPLY

Please enter your comment!
Please enter your name here

4,956FansLike
256FollowersFollow
223SubscribersSubscribe
spot_img

Related Stories