‫Nếu bạn tìm kiếm trên web để tìm định nghĩa về vùng chứa là gì, bạn sẽ thường thấy
‫mọi người so sánh vùng chứa với máy ảo.
‫Đúng, có một số điểm tương đồng, nhưng có quá nhiều thứ không giống nhau.
‫Tôi muốn chúng tôi sao lưu và nói rằng đừng so sánh chúng với máy ảo. Vì thực sự chúng chỉ là
‫một quá trình. Chúng là một quá trình chạy trên
‫hệ điều hành máy chủ của bạn, trong trường hợp của chúng tôi là Linux. Hãy cùng xem vì thật dễ hiểu khái niệm đó thực sự chỉ
‫là một quá trình hạn chế bên trong hệ điều hành máy chủ của chúng ta và không có gì giống như một máy ảo.
‫Hãy bắt đầu một cơ sở dữ liệu Mongo.
‫Chúng tôi sẽ gọi nó là mongo. Chúng tôi sẽ chạy nó trong nền.
‫Và chúng tôi đang sử dụng hình ảnh Mongo.
‫Được rồi. Chúng ta có thể thấy rằng nó đang chạy và Docker cũng có một thứ gọi
‫là docker top sẽ cho phép tôi liệt kê các quy trình đang chạy bên trong một vùng chứa cụ thể.
‫Ở đó chúng ta sẽ thấy rằng chúng ta có một quy trình duy nhất được gọi là mongod.
‫Bạn có thể thấy đó là PID, là ID quy trình của nó. Chúng tôi cũng có thể làm điều đó từ máy chủ. Bởi vì đây chỉ là một quá trình
‫chạy trên hệ điều hành máy chủ của chúng tôi,
‫bất kỳ công cụ máy chủ nào mà tôi muốn sử dụng để xem xét các quá trình đều sẽ thấy quá trình này.
‫Ví dụ, chúng ta có thể sử dụng một danh sách quy trình. Tôi sẽ liệt kê tất cả chúng trên hệ thống. Bạn sẽ thực sự thấy ở đây,
‫nếu tôi tìm kiếm, một trong số chúng được gọi là mongod. Bạn thậm chí sẽ nhận thấy rằng nó thực sự đang chạy dưới
‫một ID quy trình khác với phần còn lại của hệ thống.
‫Và đó chỉ là do các lớp bảo mật mà chúng ta sẽ nói về các vùng chứa và cách chúng khác một chút
‫so với các quy trình thông thường đang chạy trên máy chủ.
‫Chúng ta có thể thấy rõ đây là một tiến trình trên máy chủ.
‫Nó không ẩn bên trong một máy ảo mà chúng ta không thể truy cập.
‫Nó ở ngay trước mặt chúng ta.
‫Nếu tôi dừng vùng chứa này,
‫bạn có thể làm một ps docker. Bạn sẽ thấy nó không chạy.
‫Bạn có thể làm một mongo hàng đầu docker.
‫Nó thực sự sẽ không cung cấp cho chúng tôi bất cứ điều gì vì thùng chứa không chạy.
‫Và nếu chúng tôi thực hiện một ps aux, và chúng tôi tìm kiếm lại
‫mongo, chúng tôi sẽ
‫không thấy bất kỳ thứ gì được đánh dấu trong danh sách đó. Tôi thực sự đang tìm kiếm bên trong thiết bị đầu cuối của mình.
‫Một cách dễ dàng hơn để làm
‫điều này là thực hiện ps aux và sau đó sử dụng grep, đây là một công cụ lọc sẽ xem xét đầu ra và chúng ta có thể yêu cầu nó tìm
‫kiếm từ mongo.
‫Điều duy nhất nó thực sự sẽ tìm thấy là lệnh mà tôi vừa chạy để tìm kiếm từ
‫mongo.
‫Nó đang liệt kê điều đó. Chúng ta sẽ thấy một lệnh
‫khác ở đây ngay bên dưới nó, một đầu
‫ra khác của một tiến trình, nếu nó thực sự đang chạy. Chúng ta có thể bắt đầu sao lưu lại, docker start mongo, bởi vì vùng chứa đó
‫vẫn ở đó, chỉ là không chạy ở
‫chế độ nền, giống như một quá trình đã dừng. Chúng ta có thể làm lại ps docker và nó hoạt động trở lại.
‫Chúng ta có thể thực hiện lại mongo trên docker và thấy rằng có một tiến trình lại đang chạy bên trong vùng chứa.
‫Nó chỉ được bắt đầu mới.
‫Nó chỉ kéo dài sáu giây như chúng ta có thể thấy ở đây.
‫Nếu chúng tôi thực hiện mongo ps aux grep, bạn sẽ thấy rằng tôi đang thực sự thấy quá trình mongod.