‫Yêu cầu đối với bài giảng này là bạn phải hiểu hình ảnh là gì và bạn đã
‫thực hiện một chút công việc với vùng chứa.
‫Trong bài giảng này, chúng ta sẽ tham quan nhanh xung quanh Docker Hub và tìm hiểu
‫một vài tính năng cơ bản của nó. Sau đó, chúng ta sẽ thảo luận về sự khác biệt giữa hình ảnh chính thức và
‫có thể chỉ là những hình ảnh đẹp khác, và cách phân biệt giữa hình ảnh tốt và hình ảnh xấu.
‫Sau đó, tôi sẽ trình bày một chút về việc tải xuống hình ảnh và cách bạn có thể thấy các thẻ khác nhau mà chúng
‫sẽ sử dụng và sự khác biệt giữa hình ảnh Alpine và các tùy chọn hình ảnh khác.
‫Bạn nên đăng nhập vào trung tâm. người đóng tàu. com. Khi bạn đăng nhập, trang chủ mặc định
‫là trang tổng quan của bạn, trang này sẽ hiển thị cho bạn tất cả các kho lưu trữ của bạn, công khai và riêng tư.
‫Bạn sẽ không có bất kỳ cái nào, nhưng bạn có thể thấy tôi có một số ở đây.
‫Tất cả chúng đều công khai.
‫Tôi có một cái riêng. Bây giờ chúng ta hãy lên đầu trang và tìm kiếm nginx. Những gì chúng ta sẽ nhận lại là kết quả tìm kiếm của
‫Docker Hub và bạn sẽ thấy rằng có rất nhiều. Tôi có thể cuộn các trang và các trang.
‫Một trong những thách thức là có 15.000 hình ảnh của Nginx.
‫Đó là rất nhiều.
‫Vì vậy, tôi hầu như chỉ sử dụng một hoặc hai.
‫Bản chính thức
‫ngay tại đây, bạn sẽ thấy ở trên cùng, có hơn 10 triệu lượt kéo.
‫Có một số đặc điểm để tìm ra đâu là hình ảnh phù hợp.
‫Giống như tôi, bạn sẽ bắt đầu sử dụng các hình ảnh cho quy trình làm việc của mình có liên quan đến những gì bạn làm và bạn
‫sẽ quen với những hình ảnh cụ thể. Bạn sẽ thích những cái cụ thể.
‫Thông thường, chúng tôi luôn bắt đầu với chính thức.
‫Viên chức sẽ là người duy nhất có từ 'chính thức' thực sự bên dưới nó.
‫Nó cũng sẽ là cái duy nhất mà tên của nó không có dấu gạch chéo ở phía trước.
‫Khi bạn và tôi tạo hình ảnh trên Docker Hub, chúng ta phải tạo chúng với tên tài khoản của chúng tôi ở phía
‫trước.
‫Vì vậy, khi bạn nhìn vào tất cả những cái khác, đây là những tên tài khoản gạch chéo tên kho lưu trữ hình ảnh.
‫Nó thực sự có thể là một tổ chức chém nginx hoặc đại loại như vậy.
‫Nhưng những người duy nhất chỉ có tên của repo được coi là chính thức. Hình ảnh chính thức là những
‫hình ảnh mà Docker, Inc. thực sự có một nhóm người giúp chăm sóc chúng, đảm
‫bảo rằng chúng có tài liệu chất lượng, chúng đã được kiểm tra tốt và chúng được kết hợp đúng
‫cách với Dockerfiles đang tuân thủ các quy tắc thực hành tốt nhất. Họ thường làm việc với nhóm chính thức của phần mềm đó, những người
‫thực sự tạo ra nó để đảm bảo rằng nó đang làm tất cả những điều mà nó nên làm.
‫Vì vậy, tôi sẽ nhấp vào cái này.
‫Hãy xem xét một số điều về Kho lưu trữ chính thức.
‫Giống như tôi đã nói trước đây, bạn thường sẽ sử dụng các quan chức để bắt đầu và sau đó, cuối cùng bạn có thể thấy
‫rằng bạn muốn thay đổi một chút hoặc thêm một vài thứ vào nó và bạn sẽ tạo ra hình ảnh của riêng mình.
‫Hình ảnh chính thức là một cách tuyệt vời để bắt đầu.
‫Một trong những điều tốt nhất về hình ảnh chính thức là tài liệu của chúng.
‫Họ luôn thực sự giỏi trong việc ghi lại
‫cách làm cho chúng hoạt động, những tùy chọn có thể có, biến môi trường nào, cổng mặc định là gì, v.v.
‫Vì vậy, hãy sao lưu ở trên cùng, bạn sẽ nhận thấy các phiên bản này. Các phiên bản là đặc điểm chung của các kho lưu trữ chính thức.
‫Bạn không nhất thiết phải có các phiên bản trong mọi hình ảnh nhưng những hình ảnh chính thức thì có.
‫Bởi vì hầu hết phần mềm nguồn mở luôn có ít nhất một vài phiên bản chính thức
‫được duy trì và hỗ trợ chính thức.
‫Đó là những gì chúng tôi có ở đây. Chúng tôi có dòng chính 1. 11 cho Nginx và sau đó chúng ta có nhánh
‫ổn định của Nginx, là 1. 10. Chúng ta có thể thấy cái
‫tên nhỏ ở đây nói rằng Dockerfile jessie ổn định.
‫Được rồi.
‫Vì vậy, chúng ta hãy chia nhỏ điều này.
‫1. 11. 9, dòng chính, 1, 1. 11 và mới nhất.
‫Đó là tất cả các thẻ.
‫Khi chúng ta bắt đầu nói về hình ảnh, hình ảnh không nhất thiết phải được đặt tên. Hình ảnh được gắn thẻ. Một phiên bản của hình ảnh thực sự
‫có thể có nhiều hơn một thẻ.
‫Chúng ta sẽ đi sâu vào vấn đề này một chút sau khi chúng ta bắt đầu tạo hình ảnh của riêng
‫mình và chúng ta có thể chơi với việc gắn thẻ.
‫Nhưng hiện tại, nếu tôi thực sự muốn tải xuống hình ảnh cụ thể đó và bạn nhớ trước đó rằng chúng tôi đã thực sự
‫tải xuống nó,
‫vì vậy nếu tôi tạo hình ảnh docker ls, bạn sẽ thấy ba hình ảnh mà chúng tôi đã làm việc cho đến nay máy của tôi.
‫Bạn thấy thẻ có nội dung mới nhất. Bây giờ mới nhất là một thẻ đặc biệt.
‫Nó không nhất thiết phải đảm bảo rằng nó luôn là cam kết mới nhất trong kho lưu trữ.
‫Điều đó thường có nghĩa là bạn đang nhận được phiên bản mới nhất của sản phẩm này. Trong kho lưu trữ chính thức, nó được xác định rất rõ ràng và
‫nhất quán nên
‫nếu ngay bây giờ bạn không thực sự quan tâm chính xác phiên bản bạn muốn, bạn chỉ
‫muốn phiên bản mới nhất, thì bạn có thể nói docker pull nginx. Nó sẽ tải xuống bản
‫mới nhất. Bạn sẽ nhận thấy rằng nó đã biết tôi có nó, nó đã
‫kiểm tra SHA để đảm bảo nó khớp với SHA từ Docker Hub và nói "Này,
‫tôi đã có hình ảnh này, nó đã được cập nhật. "Điều gì sẽ xảy ra nếu tôi muốn tải xuống hình ảnh docker phiên bản 1. 11. 9?
‫Nó sẽ đi kiểm tra và xem những gì nó cần làm để tải xuống hình ảnh đó và hóa
‫ra nó không cần phải làm bất cứ điều gì vì nó là phiên bản chính xác.
‫Đó là ý nghĩa của dòng này ở đây.
‫Tôi có thể tham khảo phiên bản 'chính, mới nhất' này ngay tại đây bằng bất kỳ thẻ nào trong số này.
‫Lý do là nếu tôi chỉ muốn ở trên phiên bản mới nhất của 1. 0, bất kỳ điều gì có thể dành cho Nginx,
‫tôi chỉ có thể chỉ định 1. Nếu tôi muốn cụ thể hơn khi tải hình ảnh
‫xuống và tôi muốn có phiên bản mới nhất của 1. 11, sau đó tôi có thể chỉ cần gõ 1. 11 như thế này và chỉ
‫cần bỏ đi. 9 và nó sẽ tải xuống cái đó.
‫Nhưng trong trường hợp của tôi, tôi thực sự chỉ định cái cụ thể nhất trong tất cả cái 1. 11. 9 trong đó hiển thị bản phát
‫hành điểm và điều đó chỉ để đảm bảo rằng tôi có được phiên bản chính xác mà tôi muốn.
‫Vì vậy, trong phần mềm của bạn, một phương pháp hay nhất là khi bạn đang sản xuất và thực sự bạn đang thử nghiệm phần
‫mềm mà bạn sẽ sử dụng cho người
‫khác, bạn luôn muốn chỉ định phiên bản chính xác.
‫Hiếm khi bạn thực sự muốn phần mềm của mình cập nhật tự động.
‫Bạn thường muốn kiểm soát quá trình đó bằng một số công cụ DevOps khác.
‫Nhưng khi bạn đang phát triển hoặc chỉ đang thử nghiệm một cái gì đó cục bộ, thật dễ dàng với các hình ảnh chính thức để chỉ cần
‫nhập tên và chỉ cần giả sử bạn sẽ nhận được thông tin mới nhất.
‫Vì vậy, bạn sẽ nhận thấy ở đây có những cái khác.
‫Có 1. 11. 9-alpine và những cái này đều có tên rất giống với cái đầu
‫tiên nhưng chúng đều có từ alpine trong đó.
‫Chúng ta sẽ đi sâu vào hình ảnh cơ sở và bản phân phối sau, nhưng hiện tại, Alpine thực sự là
‫một bản phân phối Linux rất nhỏ.
‫Tôi tin rằng nó thực sự có kích thước nhỏ hơn 5MB. Phiên bản này thực sự có nghĩa là nó đến từ một
‫hình ảnh cơ sở của Alpine, giữ cho nó rất nhỏ và nhẹ, trong khi hình ảnh mặc định hoặc hình ảnh mới nhất thực sự
‫đến từ jessie, là bản phân phối Debian. Nó có kích thước lớn hơn một chút
‫có lẽ hơn 100MB một chút.
‫Trên thực tế, chúng ta thực sự có thể đi qua đây và chúng ta có thể xem xét.
‫Vì vậy, nginx 182MB ngay tại đây.
‫Nếu tôi muốn tải xuống phiên bản Alpine chính xác đó, tôi có thể nói 1. 11. 9-apline và sau đó làm ls hình
‫ảnh docker và bạn sẽ thấy rằng phiên bản núi cao thực sự chỉ có
‫54MB và phiên bản mới nhất là 182MB.
‫Bạn cũng sẽ nhận thấy rằng ba phiên bản mà tôi đã tải xuống
‫đều có cùng một ID hình ảnh vì ID hình ảnh dựa trên SHA mật mã của mỗi hình ảnh trong Docker Hub.
‫Vì vậy, đây thực sự không phải là ba bản sao khác nhau của hình ảnh 128MB.
‫Nó thực sự là một chút lừa dối.
‫Nó thực sự chỉ là ba thẻ của cùng một ID hình ảnh chính xác và nó chỉ chiếm tổng cộng 182MB và đây chỉ
‫là hai dòng khác hiển thị cùng một ID hình ảnh với các thẻ khác nhau được liên kết với nó.
‫Nhưng đủ về thẻ và phiên bản cho bây giờ.
‫Hãy cùng
‫tìm hiểu thêm một số điều trong Docker Hub. Nếu tôi quay lại nginx trong thanh tìm kiếm và tìm kiếm lại nginx, bạn sẽ thấy
‫có rất nhiều tùy chọn khác và những tùy chọn này có thể được thực hiện bởi bất kỳ ai.
‫Bạn có thể tạo phiên bản Nginx tùy chỉnh của riêng mình và bởi vì đây là phần mềm mã nguồn mở
‫và được phân phối miễn phí, bạn có thể sao lưu nó tại đây và giới thiệu cho công chúng.
‫Điều này rất giống với mô hình của GitHub nơi họ cho phép bạn lưu trữ phần mềm nguồn mở và bạn có
‫thể phân nhánh phần mềm của người khác và cũng có thể cung cấp phần mềm đó.
‫Điều tương tự cũng xảy ra ở đây.
‫Bạn có thể sử dụng hình ảnh của người khác và tải xuống, biến chúng thành của riêng bạn, tải lên lại.
‫Vì vậy, nếu tôi muốn xem xét việc không sử dụng một kho lưu trữ chính thức, những gì tôi thường tìm kiếm là
‫một số ngôi sao và một số cuộc thăm dò vì một kho lưu trữ phổ biến, đối với tôi, có xu hướng thiết lập lòng tin.
‫Tôi luôn khuyên bạn nên tải xuống và kiểm tra phần mềm trước khi sử dụng. Tìm trong Dockerfile của họ và hy vọng họ
‫sẽ có một kho lưu trữ mã nguồn mở mà bạn có thể xem chính xác cách họ tạo
‫ra hình ảnh đó.
‫Một dấu hiệu tốt là khi bạn nhìn thấy những thứ có 5 triệu lượt kéo và 945 sao; rõ ràng có điều gì đó thú
‫vị về gói này và tại sao nhiều người lại chọn nó hơn là sử dụng
‫hình ảnh chính thức.
‫Bạn có thể vào đây và xem kho của họ.
‫Bạn thực sự có thể nhìn thấy ở bên phải rằng anh ấy được liên kết với kho lưu trữ GitHub của anh
‫ấy, nơi phần mềm nguồn mở thực sự xây dựng hình ảnh này để bạn có thể đi và kiểm tra nó; và, có
‫thể tải xuống mã nguồn thực bên ngoài hình ảnh.
‫Tuy nhiên, rõ ràng anh ấy đã làm điều gì đó với hình ảnh Nginx này để làm cho nó tốt
‫hơn so với mặc định chính thức.
‫Một vài điều nữa. Trên thanh trên cùng, bạn sẽ thấy Khám phá. Khám phá chỉ cung cấp cho
‫bạn một bản tóm tắt về tất cả các hình ảnh chính thức và bạn có thể xem qua
‫chúng và tin tôi đi, có rất nhiều thứ. Trên thực tế, trong các tài nguyên
‫cho phần này, bạn sẽ tìm thấy một liên kết đến danh sách thực tế các hình ảnh chính thức và trong 'thư
‫viện', đây là nơi chứa tất cả các hình ảnh chính thức và Dockerfiles của chúng.
‫Bạn có thể thấy có rất nhiều. Như một bản tóm tắt nhanh, trong bài giảng này, chúng tôi đã nói
‫về Docker Hub và cách nó tương tự như trở thành trình quản lý gói apt
‫cho Container, Sau đó là cách nhận ra hình ảnh chính thức và cách sử dụng chúng.
‫Sau đó, tôi đã giúp bạn tìm ra cách xác định một hình ảnh tốt trước công chúng có thể là một hình ảnh không tốt.
‫Sau đó, một số mẹo về hình ảnh cơ sở và cách các hình ảnh Alpine thường nhỏ hơn so với các bản sao Debian của chúng.
‫Vì vậy, chúng tôi sẽ sử dụng những kỹ năng này trong phần còn lại của phần này.