Docker Hub là một dịch vụ miễn phí mà Docker cung cấp cho cộng đồng để lưu trữ và chia sẻ các container image dựng sẵn. Đây là kho lưu trữ lớn nhất thế giới dành cho container, với hơn 100,000 ứng dụng container được tạo sẵn. Rất có thể nếu bạn đang tìm cách xây dựng một container, ai đó đã dựng sẵn một container phù hợp dành cho bạn. Nhiều nhà cung cấp phần mềm cũng xuất bản các image chính thức đã được xác nhận bởi nhà cung cấp và Docker; khi bạn sử dụng image đó, bạn có thể tin tưởng rằng container bạn đang sử dụng đã được kiểm tra và không có phần mềm độc hại. Trong khi bất kỳ ai cũng có thể đăng ký tài khoản miễn phí, Docker kiếm tiền bằng cách cung cấp các kho lưu trữ container riêng có tính phí phù hợp cho các cá nhân và doanh nghiệp. Docker Hub là một dịch vụ cloud-only, vì vậy nếu bạn muốn chạy một container registry riêng trong data center của mình, bạn phải triển khai phần mềm Docker Enterprise hoặc một hệ thống container registry khác tại chỗ.
Docker Hub có giao diện web mượt mà giúp bạn dễ dàng thiết lập kho lưu trữ và bảo mật nó. Nó cũng tích hợp với GitHub và Bitbucket để cho phép tạo container tự động từ mã nguồn được lưu trữ trong hệ thống kiểm soát phiên bản(VCS) của bạn. Đó là một cách tuyệt vời để bắt đầu xây dựng một CI/CD pipeline vì nó hoàn toàn miễn phí để bắt đầu. Nếu bạn thiết lập một tài khoản miễn phí, bạn có thể tận dụng các khả năng của Docker Hub ngay lập tức. Hình 13-28 cho thấy trang đăng ký Docker Hub.
Hình 13-28 Đăng Ký Docker Hub
Sau khi có tài khoản, bạn có thể tìm kiếm thông qua nhiều container có sẵn và có thể lọc theo hệ điều hành, danh mục và xem image đó có phải là image chính thức được Docker chứng nhận, được xác minh bởi nhà xuất bản hay không hoặc là image chính thức do chính Docker xuất bản. Hình 13-29 cho thấy chức năng tìm kiếm image
Hình 13-29 Tìm Kiếm Image Docker Hub
Docker gửi một ứng dụng GUI có tên là Kitematic để tương tác với các container trên localhost của bạn cũng như trên Docker Hub. Ứng dụng miễn phí này có thể tải xuống và khởi chạy các container chỉ với một cái nhấp chuột đơn giản. Điều này thật tuyệt vời cho những người đang gặp khó khăn với tất cả các tùy chọn command-line mà ứng dụng Docker client điển hình yêu cầu. Những hãy cẩn thận: Với Kitematic, bạn không có nhiều quyền kiểm soát trực tiếp như với ứng dụng Docker client. Tải xuống và dùng thử. Hình 13-30 cho thấy Kitematic trong hoạt động.
Hình 13-30 Kitematic
Sau khi bạn xây dựng một container, như bạn đã làm trong ví dụ trước, bạn cần đẩy nó vào một kho lưu trữ. Vì bạn có thể sử dụng Docker Hub miễn phí, bạn có thể thiết lập một kho riêng để lưu trữ container này. Nếu bạn muốn chia sẻ với mọi người container mà bạn đã tạo, bạn có thể làm như vậy bằng cách đơn giản đặt kho lưu trữ ở chế độ công khai. Một kho lưu trữ riêng luôn là một lựa chọn tốt cho code chỉ dành cho tổ chức của bạn. Hình 13-31 cho thấy cách thiết lập kho lưu trữ riêng tư trong Docker Hub có tên là newrepo mà bạn có thể đẩy container mới của mình vào.
Hình 13-31 Thiết lập kho lưu trữ Docker Hub
Khi kho lưu trữ của bạn được thiết lập, bạn cần gắn thẻ image của mình để có thể đẩy lên Docker Hub. Sử dụng docker image ls để liệt kê image của bạn và image ID:
Tiếp theo, bạn cần đưa ra lệnh docker image tag cùng với image ID của image của bạn và gán nó cho username/newrepo:firsttry. Newrepo chỉ đơn giản là xác định kho bạn muốn đặt image vào và gắn thẻ sau “ : ” cho phép bạn phân biệt image cụ thể này với bất kỳ image cụ thể nào khác trong kho lưu trữ(trong trường hợp này, nó được đặt tên là firsttry):
Bây giờ bạn đã sẵn sàng để đưa lệnh push, như được hiển thị trong Ví dụ 13-9 và bạn thấy Docker bắt đầu đẩy các layer của container image vào kho lưu trữ.
Example 13-9 lệnh docker image push
Bây giờ bạn có thể kiểm tra lại bằng Docker Hub và thấy rằng image hiện được lưu trữ trong kho lưu trữ riêng của bạn(xem Hình 13-32).
Hình 13-32 Image được đẩy lên Docker Hub
Sau lần này, bất kỳ lúc nào bạn muốn truy xuất image, bạn có thể nhập docker image pull username/newrepo:firsttry, và Docker sẽ tải nó vào kho image cục bộ của bạn
Còn khá nhiều điều bạn có thể làm với Docker, nhưng phần này sẽ giúp bạn bắt đầu và tập trung vào những gì bạn cần biết cho kỳ thi 200-901 DevNet Associate DEVASC. Để đảm bảo điều đó hãy xem lại tài liệu Docker và thử các ví dụ này trên máy tính của riêng bạn. Không có gì đánh bại được kinh nghiệm thực tế.
Docker Hub có giao diện web mượt mà giúp bạn dễ dàng thiết lập kho lưu trữ và bảo mật nó. Nó cũng tích hợp với GitHub và Bitbucket để cho phép tạo container tự động từ mã nguồn được lưu trữ trong hệ thống kiểm soát phiên bản(VCS) của bạn. Đó là một cách tuyệt vời để bắt đầu xây dựng một CI/CD pipeline vì nó hoàn toàn miễn phí để bắt đầu. Nếu bạn thiết lập một tài khoản miễn phí, bạn có thể tận dụng các khả năng của Docker Hub ngay lập tức. Hình 13-28 cho thấy trang đăng ký Docker Hub.
Hình 13-28 Đăng Ký Docker Hub
Sau khi có tài khoản, bạn có thể tìm kiếm thông qua nhiều container có sẵn và có thể lọc theo hệ điều hành, danh mục và xem image đó có phải là image chính thức được Docker chứng nhận, được xác minh bởi nhà xuất bản hay không hoặc là image chính thức do chính Docker xuất bản. Hình 13-29 cho thấy chức năng tìm kiếm image
Hình 13-29 Tìm Kiếm Image Docker Hub
Docker gửi một ứng dụng GUI có tên là Kitematic để tương tác với các container trên localhost của bạn cũng như trên Docker Hub. Ứng dụng miễn phí này có thể tải xuống và khởi chạy các container chỉ với một cái nhấp chuột đơn giản. Điều này thật tuyệt vời cho những người đang gặp khó khăn với tất cả các tùy chọn command-line mà ứng dụng Docker client điển hình yêu cầu. Những hãy cẩn thận: Với Kitematic, bạn không có nhiều quyền kiểm soát trực tiếp như với ứng dụng Docker client. Tải xuống và dùng thử. Hình 13-30 cho thấy Kitematic trong hoạt động.
Hình 13-30 Kitematic
Sau khi bạn xây dựng một container, như bạn đã làm trong ví dụ trước, bạn cần đẩy nó vào một kho lưu trữ. Vì bạn có thể sử dụng Docker Hub miễn phí, bạn có thể thiết lập một kho riêng để lưu trữ container này. Nếu bạn muốn chia sẻ với mọi người container mà bạn đã tạo, bạn có thể làm như vậy bằng cách đơn giản đặt kho lưu trữ ở chế độ công khai. Một kho lưu trữ riêng luôn là một lựa chọn tốt cho code chỉ dành cho tổ chức của bạn. Hình 13-31 cho thấy cách thiết lập kho lưu trữ riêng tư trong Docker Hub có tên là newrepo mà bạn có thể đẩy container mới của mình vào.
Hình 13-31 Thiết lập kho lưu trữ Docker Hub
Khi kho lưu trữ của bạn được thiết lập, bạn cần gắn thẻ image của mình để có thể đẩy lên Docker Hub. Sử dụng docker image ls để liệt kê image của bạn và image ID:
Tiếp theo, bạn cần đưa ra lệnh docker image tag cùng với image ID của image của bạn và gán nó cho username/newrepo:firsttry. Newrepo chỉ đơn giản là xác định kho bạn muốn đặt image vào và gắn thẻ sau “ : ” cho phép bạn phân biệt image cụ thể này với bất kỳ image cụ thể nào khác trong kho lưu trữ(trong trường hợp này, nó được đặt tên là firsttry):
Bây giờ bạn đã sẵn sàng để đưa lệnh push, như được hiển thị trong Ví dụ 13-9 và bạn thấy Docker bắt đầu đẩy các layer của container image vào kho lưu trữ.
Example 13-9 lệnh docker image push
Bây giờ bạn có thể kiểm tra lại bằng Docker Hub và thấy rằng image hiện được lưu trữ trong kho lưu trữ riêng của bạn(xem Hình 13-32).
Hình 13-32 Image được đẩy lên Docker Hub
Sau lần này, bất kỳ lúc nào bạn muốn truy xuất image, bạn có thể nhập docker image pull username/newrepo:firsttry, và Docker sẽ tải nó vào kho image cục bộ của bạn
Còn khá nhiều điều bạn có thể làm với Docker, nhưng phần này sẽ giúp bạn bắt đầu và tập trung vào những gì bạn cần biết cho kỳ thi 200-901 DevNet Associate DEVASC. Để đảm bảo điều đó hãy xem lại tài liệu Docker và thử các ví dụ này trên máy tính của riêng bạn. Không có gì đánh bại được kinh nghiệm thực tế.