Bài 4: Docker Hub là gì và Cách Đẩy Docker Image lên Docker Hub
Giới Thiệu về Docker Hub
Docker Hub là một registry trực tuyến được Docker cung cấp, cho phép bạn lưu trữ, chia sẻ và quản lý Docker images. Đây là nền tảng phổ biến nhất để phân phối Docker images, với hàng triệu images có sẵn từ cộng đồng và các tổ chức. Docker Hub cung cấp cả repositories public (công khai) và private (riêng tư), giúp bạn dễ dàng lưu trữ và chia sẻ images với cộng đồng hoặc nhóm phát triển của mình.
Các Tính Năng Chính của Docker Hub:
Public và Private Repositories:
- Bạn có thể tạo các repository công khai mà mọi người đều có thể truy cập hoặc các repository riêng tư mà chỉ bạn và nhóm của bạn mới có quyền truy cập.
Automated Builds:
- Docker Hub hỗ trợ tính năng build tự động từ mã nguồn của bạn (ví dụ từ GitHub hoặc Bitbucket). Điều này giúp tự động hóa quy trình CI/CD, khi mỗi lần mã nguồn được cập nhật thì Docker image cũng được build lại tự động.
Webhooks:
- Docker Hub cung cấp webhooks để bạn có thể tích hợp với các công cụ khác, chẳng hạn như gửi thông báo khi có image mới được push lên.
Official Images:
- Docker Hub cung cấp một loạt các official images (image chính thức) từ các tổ chức uy tín, được duy trì và cập nhật thường xuyên, giúp bạn sử dụng một cách tin cậy.
Tạo Tài Khoản Docker Hub
Trước khi có thể đẩy Docker image lên Docker Hub, bạn cần tạo một tài khoản trên nền tảng này.
Các bước tạo tài khoản:
Truy cập trang chủ Docker Hub: Mở trình duyệt và truy cập vào địa chỉ https://hub.docker.com/.
Đăng ký tài khoản: Nhấp vào nút "Sign Up" để tạo tài khoản mới. Bạn sẽ cần cung cấp địa chỉ email, tạo tên người dùng và mật khẩu.
Xác thực tài khoản: Sau khi đăng ký, bạn sẽ nhận được một email xác thực. Hãy kiểm tra email và làm theo hướng dẫn để kích hoạt tài khoản.
Sau khi kích hoạt, bạn đã sẵn sàng để sử dụng Docker Hub.
Tagging Docker Images
Trước khi đẩy (push) Docker image lên Docker Hub, bạn cần gắn nhãn (tag) cho image đó. Tag giúp Docker xác định tên của image và nơi image sẽ được đẩy đến.
Tagging Image:
Kiểm tra Docker images:
Trước tiên, hãy kiểm tra các Docker images có trên máy của bạn bằng lệnh:
docker images
Gắn tag cho Docker image:
Sử dụng lệnh
docker tag
để gắn tag cho Docker image. Cú pháp lệnh:docker tag <image_id> <dockerhub_username>/<repository_name>:<tag>
Ví dụ:
docker tag springboot-docker-demo taher123/springboot-demo:v1.0
Trong ví dụ này:
springboot-docker-demo
là tên Docker image trên máy cục bộ.taher123/springboot-demo:v1.0
là tên image sẽ được đẩy lên Docker Hub, trong đótaher123
là tên người dùng trên Docker Hub,springboot-demo
là tên repository, vàv1.0
là tag.
Đăng Nhập Docker Hub từ Dòng Lệnh
Để đẩy Docker image lên Docker Hub, bạn cần đăng nhập vào tài khoản Docker Hub từ dòng lệnh.
Đăng nhập:
Sử dụng lệnh
docker login
để đăng nhập:docker login
Docker sẽ yêu cầu bạn nhập tên người dùng và mật khẩu. Sau khi đăng nhập thành công, bạn sẽ thấy thông báo
Login Succeeded
.
Đẩy Docker Image lên Docker Hub
Sau khi đã gắn tag và đăng nhập thành công, bạn có thể đẩy Docker image lên Docker Hub.
Đẩy Image:
Sử dụng lệnh
docker push
để đẩy Docker image:docker push <dockerhub_username>/<repository_name>:<tag>
Ví dụ:
docker push taher123/springboot-demo:v1.0
Lệnh này sẽ đẩy Docker image có tag
v1.0
lên repositoryspringboot-demo
trong tài khoảntaher123
trên Docker Hub.
Kiểm Tra Image trên Docker Hub:
- Sau khi đẩy thành công, bạn có thể truy cập vào Docker Hub, đăng nhập và kiểm tra Docker image trong repository của mình.
Sử Dụng Docker Images từ Docker Hub
Docker Hub không chỉ là nơi lưu trữ images mà còn cho phép bạn tải về và sử dụng các Docker images có sẵn.
Tìm kiếm Docker Images:
- Truy cập trang chủ Docker Hub và sử dụng thanh tìm kiếm để tìm các Docker images bạn cần. Ví dụ, bạn có thể tìm
mysql
để xem các images liên quan đến MySQL.
Tải Docker Image về máy:
Sau khi tìm thấy image mong muốn, bạn có thể tải về bằng lệnh
docker pull
:docker pull <image_name>:<tag>
Ví dụ:
docker pull mysql:latest
Lệnh này sẽ tải về Docker image của MySQL với tag
latest
.
Chạy Docker Image:
Sau khi tải về, bạn có thể chạy Docker container từ image đã tải bằng lệnh
docker run
:docker run -d mysql:latest
Lệnh này sẽ chạy MySQL container ở chế độ nền (detached mode).
Quản Lý Repositories trên Docker Hub
Docker Hub cung cấp giao diện web để bạn có thể quản lý các repositories của mình một cách dễ dàng.
Tạo Repository mới:
Truy cập vào Docker Hub, đăng nhập và nhấp vào nút "Create Repository".
Nhập tên repository, mô tả, chọn loại repository (public hoặc private), sau đó nhấn "Create".
Xóa Docker Image từ Repository:
- Nếu bạn cần xóa một Docker image khỏi repository, truy cập vào repository đó trên Docker Hub, chọn image và nhấn "Delete".
Quản lý team và permissions:
- Docker Hub cho phép bạn tạo các team và phân quyền cho các thành viên trong team, giúp quản lý quyền truy cập vào các repositories riêng tư.
Tổng Kết và Bước Tiếp Theo
Trong bài viết này, chúng ta đã tìm hiểu về Docker Hub, cách tạo tài khoản, gắn tag, và đẩy Docker images lên Docker Hub. Bạn cũng đã học cách tìm kiếm và sử dụng Docker images từ Docker Hub, cùng với việc quản lý các repositories của mình.
Bài viết tiếp theo sẽ hướng dẫn bạn cách sử dụng Docker Compose để Dockerize một ứng dụng Spring Boot CRUD với MySQL. Docker Compose là công cụ mạnh mẽ giúp bạn dễ dàng quản lý các ứng dụng đa container. Hãy tiếp tục theo dõi để tìm hiểu thêm về cách ứng dụng Docker trong phát triển phần mềm.