‫Chà, xin chào, hay tôi nên nói lời chào mừng tương lai của quản lý phần mềm với
‫Docker và công cụ vùng chứa.
‫Video này nói riêng về Docker.
‫Nó có rất nhiều công cụ trong những năm qua, nhưng video này
‫nói về ba đổi mới chính đã bắt đầu Docker toàn bộ sự phát triển của phần mềm
‫vào năm 2013, đó chủ yếu là ba điều.
‫Hình ảnh Docker, sổ đăng ký Docker đó, ‫và sau đó là vùng chứa Docker.
‫Hầu hết chúng ta, khi nghĩ về Docker, chúng
‫tôi nghĩ về vùng chứa, nhưng ba đổi mới này đi cùng nhau như bánh mì
‫và bơ và họ gọi nó là tại Docker build ship run.
‫Đó là ba bước.
‫Để lấy containerd trước đó phần mềm, biến nó thành hình ảnh Docker, đưa nó vào sổ đăng
‫ký, lấy nó đến bất cứ nơi nào bạn cần để chạy nó.
‫Và cuối cùng tạo ‫một thùng chứa từ nó.
‫Trên thực tế, CNCF hoặc Đám mây Native Computing Foundation, nơi có rất nhiều công cụ mà chúng ta
‫sẽ nói đến về tất cả các video của tôi.
‫Các sản phẩm và công cụ đó và trong hầu hết các trường hợp, quy trình
‫làm việc đưa ra giả định rằng bạn đang sử dụng quy trình làm việc container của việc chạy tàu đóng mới.
‫Vì vậy, hãy chia nhỏ những điều này và ‫chính xác những gì ba là.
‫Đầu tiên lên hình ảnh vùng chứa.
‫Và tôi thích nghĩ về nó như một ứng dụng packager, Và chúng tôi đã có rất nhiều trình quản
‫lý gói trong nhiều năm.
‫Trên thực tế, tôi đã mất số lượng, và tôi đã ở gần một thời gian,
‫của tất cả các trình quản lý gói.
‫Nhưng không bao giờ có bất cứ điều gì Tôi có thể nhớ lại, đó là hệ điều hành chéo,
‫nền tảng chéo và ứng dụng ngôn ngữ bất khả tri, có nghĩa là nó sẽ chạy ở khắp mọi nơi và nó
‫chạy trên bất kỳ thứ gì, như miễn là nó chạy Linux hoặc Windows.
‫Bây giờ chúng ta hãy xem nhanh một Dockerfile, là công thức hoặc tập hợp các hướng
‫dẫn để tạo một vùng chứa hình ảnh, hình ảnh Docker và hình ảnh vùng chứa là cùng một thuật
‫ngữ cho cùng một thứ.
‫Trên thực tế, đặc tả hình ảnh Docker đã rất phổ biến, giờ đây nó đã trở thành một tiêu
‫chuẩn được gọi là tiêu chuẩn hình ảnh OCI.
‫Vì vậy, bạn thấy một tập hợp các hướng dẫn và mọi Dockerfile cần một FROM, để bắt đầu, chúng ta có
‫thể bắt đầu từ hình ảnh của người khác.
‫Chúng ta có thể có nhiều hình ảnh từ nhiều FROMs, vì vậy chúng ta sẽ đi sâu vào
‫tất cả sự phức tạp đó sau, nhưng chúng ta sẽ bắt đầu với Python ở đây và chúng tôi làm việc theo cách của chúng tôi.
‫Trên thực tế, chúng tôi bắt đầu với những điều này như lớp mỗi một trong những
‫lệnh này trong Dockerfile, đôi khi được gọi là một khổ thơ, viết hoa.
‫Bao gồm, FROM, và sau đó CHẠY và hoạt động theo cách của
‫họ vì nó xử lý chúng từ từ trên xuống, sẽ tạo ra các lớp.
‫Được di chuyển xung quanh các máy chủ dưới dạng tarball và bên trong
‫các lớp đó là các tệp, thư mục và quyền tệp và đôi khi siêu dữ liệu mà
‫chúng ta sẽ xem xét sau.
‫Khi tôi bắt đầu xây dựng hình ảnh này, nó sẽ bắt đầu dòng đầu tiên đó và tìm hình ảnh
‫Python từ Docker Hub hoặc bất cứ nơi nào tôi nói với nó để lấy hình ảnh từ.
‫và điều đó chỉ bao gồm Python ‫mã nhị phân và các thư viện của nó.
‫Nó không chứa trình điều khiển máy chủ hoặc Nhân Linux, hoặc bất kỳ thứ gì
‫bên ngoài những gì Python cần để chạy.
‫Nếu Python cần OpenSSL, thì đó là ‫bao gồm trong lớp đó của hình ảnh.
‫Sau đó, chúng ta có thể chuyển sang ‫dòng tiếp theo của Dockerfile.
‫Đó là lệnh PIP cho một Trình cài đặt phụ thuộc Python và nó
‫đang cài đặt bình.
‫Vì vậy, điều đó sẽ bắt đầu một lớp mới điều đó sẽ thêm bình giống như bạn làm
‫với lệnh cài đặt PIP thông thường.
‫Trên thực tế, những gì đang xảy ra trong nền là chúng tôi đang thực
‫hiện các vùng chứa nhỏ nhanh chóng cho từng các lớp, chạy các lệnh hoặc làm bất
‫cứ điều gì bạn cần làm bên trong các lớp đó, và sau đó lưu
‫trữ chúng như một vị trí riêng biệt của chúng.
‫Trên máy chủ Linux, nó đang xây dựng cái này.
‫Vì vậy, chúng tôi đang xếp chồng các lớp ở đây.
‫Và sau đó chúng ta đi đến phần tiếp theo ‫dòng, lệnh COPY.
‫WORKDIR ở đó chỉ là một siêu dữ liệu thay đổi, nó chỉ thay đổi
‫vị trí trong hệ thống tệp.
‫Không có gì to tát.
‫Lệnh COPY sao chép mã nguồn của chúng tôi từ máy chủ mà chúng tôi đang xây dựng thành
‫lớp riêng của nó, xếp chồng lên nhau.
‫Chúng cùng nhau tạo thành một hình ảnh ‫bằng cách sử dụng lệnh Docker build.
‫Đây là một trong những điều đó về Docker trở nên quá dễ sử dụng
‫vì chúng tôi chỉ cần bản dựng Docker đơn giản này lệnh lấy một loạt những thứ phức tạp đang diễn
‫ra trong Dockerfile và biến nó thành một hình ảnh duy nhất chỉ là ứng dụng
‫của chúng tôi và chỉ các phần phụ thuộc mà nó cần và không có gì khác.
‫Đó là phần đầu tiên ‫của việc đóng tàu chạy.
‫Đang được xây dựng Docker.
‫Tiếp theo, hãy nói về sổ đăng ký.
‫Sổ đăng ký Docker dành cho ‫phân phối ứng dụng.
‫Mọi hệ thống đóng gói ứng dụng đều có một cách để lấy các gói đó xung quanh và sổ đăng ký
‫Docker cũng không khác gì.
‫Bây giờ nó chỉ được gọi là Đặc điểm kỹ thuật phân phối
‫OCI hoặc đặc điểm đăng ký OCI.
‫Vì vậy, nó lại là một tiêu chuẩn trong toàn bộ ngành về cách di chuyển
‫hình ảnh vùng chứa xung quanh.
‫và nó ở khắp mọi nơi.
‫Mỗi đám mây đều có một.
‫Docker Hub là mặc định và ‫có lẽ là phổ biến nhất.
‫GitHub có một.
‫Bitbucket, GitLab, tất cả đều có sổ đăng ký hình ảnh của riêng họ, và bạn có thể
‫chạy của riêng bạn.
‫Có thể có ít nhất một tá các dự án mã nguồn mở miễn phí và phần mềm
‫trả phí cho phép bạn lưu trữ hình ảnh Docker của bạn trong đó.
‫vì vậy hãy phân tích cách hoạt động của nó.
‫Ngày thứ nhất.
‫Chúng tôi có hình ảnh của chúng tôi mà chúng tôi vừa xây dựng và hình ảnh đó có hàm băm SHA duy nhất xác định tất
‫cả các lớp đó theo cách mà chúng ta có thể đảm bảo rằng nếu chúng ta xem xét
‫hàm băm trên hai các hệ thống khác nhau, chúng tôi có thể chắc chắn
‫rằng đó là các tệp hoàn toàn giống nhau, chính xác siêu dữ liệu mà chúng tôi vừa tạo.
‫Các lớp hình ảnh đó đi cùng nhau ‫và tự phân phối.
‫Chúng ta có thể sử dụng một cái gì đó như Docker đẩy để lấy các lớp hình ảnh đó và
‫đẩy chúng lên một sổ đăng ký.
‫Bạn có thể sử dụng một trong nhiều cơ quan đăng ký, như Tôi đã đề cập,
‫Nhưng khi nó ở đó, sau đó bạn có thể đi đến một máy khác và thực hiện Docker pull, sẽ kéo một
‫bản sao giống hệt của hình ảnh đó xuống máy đó.
‫Giống như chúng tôi đã xây dựng ‫nó trên máy đầu tiên.
‫Và đây là một trong những nguyên tắc cốt lõi của Docker là chúng tôi có thể
‫sử dụng phần mềm mà chúng tôi đã tạo trên một máy với tất cả các phụ thuộc của nó
‫và chạy nó chính xác theo cách đó trên một hệ thống khác đó có thể là các bản phân
‫phối hoàn toàn khác của Linux hoặc Windows.
‫Nếu bạn đang sử dụng Linux và bạn xây dựng một Hình ảnh Linux, phải chạy trên
‫Linux vì nó chạy các tệp nhị phân Linux, nếu bạn đã xây dựng nó trên CentOS và bạn chạy
‫nó trên Ubuntu, nó sẽ là chính xác cùng một ứng dụng và các phần phụ thuộc, bất
‫kể sự phân bổ đó.
‫Cuối cùng, chúng ta đến Docker ‫thùng chứa chính nó. Khi chúng tôi đã hoàn thành tất
‫cả các bước xây dựng , đặt nó ở một vị trí, chúng tôi có
‫thể truy cập nó từ máy chủ của mình và sau đó tải xuống máy chủ của chúng tôi.
‫Chúng tôi có thể chạy nó.
‫Hãy tưởng tượng chúng ta có ‫một máy chủ chạy Linux.
‫Nó có thể đang chạy Windows, nhưng trong ‫trường hợp này, chúng tôi sẽ chỉ tập trung vào Linux.
‫Nó sẽ có Docker ‫chạy trong nền.
‫Nó được gọi là Công cụ Docker và công cụ trên máy duy nhất
‫này sẽ sắp xếp hoặc quản lý tất cả các những điều cần xảy ra để tải
‫xuống hình ảnh, hãy xác minh rằng chúng thứ chính xác được dùng để
‫tải xuống, rồi cuối cùng chạy chúng.
‫Sau đó, chúng tôi có hình ảnh, chúng tôi chỉ được tải xuống bằng một lệnh kéo Docker, và sau
‫đó chúng tôi sẽ chạy một lệnh.
‫Nó không thực sự quan trọng đối với bạn học
‫lệnh chưa, nhưng đó là lệnh chạy Docker.
‫Đây là phần chạy của quá trình đóng tàu.
‫Và trong trường hợp này, chúng tôi đang chạy ‫Ứng dụng Python trong vùng chứa riêng của nó.
‫Vùng chứa đó được gọi là không gian tên.
‫Đó là tính năng Linux ngăn ứng dụng đang chạy trong vùng chứa
‫này nhìn thấy phần còn lại của hệ điều hành.
‫Nó có hệ thống tệp trống của riêng mình, và nó sẽ chỉ bao gồm các tệp có
‫trong hình ảnh mà chúng tôi vừa tạo.
‫Nó sẽ nhận được địa chỉ IP riêng và ‫NIC ảo và danh sách quy trình của riêng nó.
‫Và về cơ bản trông giống như ‫hệ thống riêng của nó bên trong đó.
‫Sau đó, nếu chúng ta chạy Docker đó, hãy chạy một lần nữa với tên
‫hình ảnh hoặc hàm băm hình ảnh của chúng tôi, sau đó chúng tôi nhận được một container chạy cạnh nhau.
‫Bây giờ hai quá trình này là ‫cách ly với nhau.
‫Vì vậy, ứng dụng Python trong vùng chứa không thể ‫xem ứng dụng Python trong vùng chứa hai.
‫Và nếu bạn thay đổi một tệp trong vùng chứa hai, vùng chứa một sẽ
‫không thấy tệp đó theo mặc định.
‫Nếu chúng tôi đã thêm một máy chủ thứ hai với phiên bản thứ hai của Công cụ Docker
‫đang chạy và làm điều tương tự, chúng tôi có thể có một thiết lập khả dụng cao với ứng dụng
‫của chúng tôi chạy nhiều lần để dự phòng hoặc hiệu suất tốt hơn hoặc bất kỳ lý do nào của
‫chúng tôi có thể là để chạy nhiều hơn một trong số chúng.
‫Chúng sẽ giống hệt nhau từ quan điểm của hệ
‫thống tệp, quyền và siêu dữ liệu.
‫Bây giờ còn rất nhiều thứ nữa mà chúng ta có thể tìm hiểu về công cụ này, đó
‫là lý do tại sao khóa học mà tôi có rất lâu.
‫Nhưng đây vẫn là ba những thứ không thay đổi sau khi Docker lần đầu tiên
‫lên ý tưởng cho chúng.
‫Ý tưởng đóng tàu chạy là một trong những nguyên tắc
‫cốt lõi của vùng chứa và Kubernetes, Helm.
‫Bạn đặt tên dự án trong đám mây gốc và nó có thể giả định rằng bạn có
‫loại quy trình làm việc điển hình này cho đưa ứng dụng của bạn ra khỏi tay nhà
‫phát triển, vào hệ thống thử nghiệm và sau đó cuối cùng vào máy chủ sản xuất.
‫Đó là ba bước giống nhau.
‫Vì vậy, hy vọng nó bắt đầu chỉ một chút nữa thôi là bạn hiểu
‫được lý do tại sao đây là ba chìa khóa các thành phần, thậm chí ngày nay, nhiều, nhiều năm sau khi
‫tất cả điều này đã được phát minh.
‫Chúng ta hãy tìm hiểu những gì tiếp theo.