9.1 Tìm hiểu lại về Docker Hub
Hãy cùng tìm hiểu sâu hơn về Docker Hub. Nhắc lại chút, đây là registry Docker công khai chính, nơi người dùng có thể lưu trữ, chia sẻ và tìm kiếm các container images đã sẵn sàng. Nền tảng này cung cấp quyền truy cập vào hàng triệu container được tạo bởi cả các tổ chức chính thức và cộng đồng. Trong bài giảng này, mình sẽ xem cách tìm kiếm và tải các container images từ Docker Hub một cách hiệu quả.
Nhiệm vụ chính của dịch vụ Docker Hub
Docker Hub là một dịch vụ cloud, cho phép tải lên các container images vào kho lưu trữ tập trung và lấy chúng ra từ đó. Dịch vụ này là nơi để các lập trình viên chia sẻ container images của mình và sử dụng các giải pháp do người khác tạo ra. Các tính năng chính của Docker Hub bao gồm:
- Repositories công khai và riêng tư: Có thể lưu trữ container images trong chế độ công khai cho mọi người hoặc riêng tư chỉ cho một số người dùng cụ thể.
- Automated builds: Tích hợp với các hệ thống kiểm soát phiên bản như GitHub để tự động build container images mỗi khi code được thay đổi.
- Webhooks: Thiết lập các hành động tự động sẽ diễn ra khi container images được cập nhật.
9.2 Tìm kiếm image sẵn có
1. Sử dụng giao diện web Docker Hub
- Truy cập vào website Docker Hub: mở Docker Hub trong trình duyệt của bạn.
- Tìm kiếm image: nhập tên image hoặc các từ khóa liên quan đến dự án của bạn vào thanh tìm kiếm. Ví dụ, để tìm image Nginx, hãy nhập "nginx" và nhấn Enter.
- Xem kết quả: kết quả tìm kiếm sẽ hiển thị các image phù hợp. Các image chính thức (Official) được đánh dấu là "Official" và được hỗ trợ bởi Docker hoặc các tổ chức liên quan. Các image từ người dùng khác sẽ có tên người dùng hoặc tổ chức được hiển thị.
- Chọn image: bấm vào image bạn quan tâm để xem mô tả của nó, các thẻ (tags) sẵn có, hướng dẫn sử dụng và các thông tin hữu ích khác.
2. Tìm kiếm image qua dòng lệnh
Docker cũng cho phép tìm kiếm image trực tiếp từ dòng lệnh bằng cách sử dụng lệnh docker search
.
Ví dụ lệnh:
docker search nginx
Lệnh này sẽ hiển thị danh sách các image chứa nginx
trong tên hoặc mô tả. Kết quả sẽ bao gồm tên image, mô tả của nó, số lượng sao (đánh giá), trạng thái chính thức và thông tin về các bản build tự động.
Ví dụ kết quả:
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
nginx Official build of Nginx. 13764 [OK]
jwilder/nginx-proxy Automated Nginx reverse proxy for... 2135 [OK]
richarvey/nginx-php-fpm Container running Nginx + PHP-FPM... 819 [OK]
9.3 Tải xuống images
Sau khi tìm thấy image cần thiết, bạn có thể tải nó về máy cục bộ của mình bằng lệnh docker pull
.
1. Tải xuống image cụ thể
Để tải xuống image cụ thể, hãy sử dụng cú pháp sau:
docker pull [OPTIONS] NAME[:TAG|@DIGEST]
Trong đó:
- NAME: tên image.
- TAG: (không bắt buộc) tag của image. Theo mặc định sẽ sử dụng tag
latest
nếu không chỉ định tag khác. - @DIGEST: (không bắt buộc) SHA256-định danh cho image.
Ví dụ tải xuống image:
Ví dụ này sẽ tải xuống image nginx
mới nhất với tag latest
.
docker pull nginx:latest
2. Tải xuống image với tag cụ thể
Nếu bạn cần một tag cụ thể của image, hãy chỉ định tag đó sau dấu hai chấm. Ví dụ này sẽ tải xuống image Ubuntu phiên bản 20.04.
docker pull ubuntu:20.04
3. Kiểm tra các image đã tải xuống
Sau khi tải image, bạn có thể kiểm tra các image đang có trên máy cục bộ của mình bằng lệnh docker images
.
Ví dụ lệnh:
Kết quả đầu ra của lệnh sẽ hiển thị danh sách tất cả các image đã tải xuống, bao gồm thông tin repository, tag, ID image, ngày tạo và kích thước.
docker images
9.4 Ví dụ sử dụng hình ảnh có sẵn
1. Chạy web server Nginx
Sau khi tải hình ảnh Nginx, bạn có thể nhanh chóng khởi chạy container dựa trên nó.
Ví dụ:
Ví dụ này khởi chạy container Nginx
ở chế độ nền và chuyển tiếp cổng 80 của container sang cổng 8080 của máy chủ. Bây giờ bạn có thể truy cập vào web server Nginx
bằng cách mở trình duyệt và nhập http://localhost:8080.
docker run -d -p 8080:80 nginx
2. Chạy cơ sở dữ liệu MySQL
Docker Hub cung cấp các hình ảnh cơ sở dữ liệu có sẵn như MySQL, cho phép dễ dàng triển khai cơ sở dữ liệu cho phát triển và kiểm thử.
Ví dụ:
Ví dụ này khởi chạy container MySQL, thiết lập mật khẩu cho người dùng root và chuyển tiếp cổng 3306 của container sang cổng 3306 của máy chủ.
docker run -d -p 3306:3306 --name my_mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw mysql:latest
3. Sử dụng hình ảnh Redis để caching
Redis — hệ thống caching phổ biến, và Docker Hub cung cấp hình ảnh Redis có sẵn, cho phép triển khai nhanh chóng.
Ví dụ:
Ví dụ này khởi chạy container Redis và chuyển tiếp cổng 6379 của container sang cổng 6379 của máy chủ.
docker run -d -p 6379:6379 --name my_redis redis:latest
GO TO FULL VERSION