‫Được rồi, chúng ta hãy làm một số việc thú vị. Trong bài giảng này, chúng ta sẽ nói nhanh về sự khác
‫biệt giữa hình ảnh và vùng chứa. Sau đó, chúng ta sẽ bắt tay ngay vào việc
‫chơi đùa với một thùng chứa. Chúng tôi sẽ bắt đầu nó, chúng tôi
‫sẽ dừng và xóa nó, đồng thời thực hiện một số chức năng quản trị thông thường. Sau đó, chúng ta sẽ kiểm tra nhật ký vùng chứa
‫và các quy trình đang chạy trong vùng chứa của chúng ta.
‫Vì vậy, trước khi chúng ta thực sự nhanh chóng, chúng ta nên biết sự khác biệt giữa hình ảnh và vùng chứa. Hình ảnh là mã nhị phân và
‫thư viện và mã nguồn tạo nên ứng dụng của bạn. Vùng chứa là một phiên bản đang chạy
‫của hình ảnh đó.
‫Bây giờ, bạn có thể có nhiều vùng chứa dựa trên cùng một hình ảnh. Trong bài giảng này, chúng ta sẽ sử
‫dụng máy chủ web Nguồn mở Nginx. Vì vậy, chúng tôi sẽ bắt đầu các
‫vùng chứa của mình dựa trên hình ảnh Nginx đó. Chúng tôi nhận được tất cả các hình ảnh của chúng tôi từ các cơ quan đăng ký. Cơ quan đăng ký
‫giống như GitHub đối với mã nguồn. Sổ đăng ký hình ảnh dành cho hình ảnh vùng chứa và đăng ký mặc định cho
‫Docker là Docker Hub, bạn có thể kiểm tra tại trung
‫tâm. người đóng tàu. com.
‫Chúng tôi sẽ chơi nhiều hơn với điều đó sau.
‫Nhưng bây giờ hãy lưu ý rằng hai thứ này khá khác nhau, và trong phần tiếp theo, chúng ta sẽ
‫chuyển sang hình ảnh.
‫Nhưng bây giờ chúng ta hãy tập trung vào các thùng chứa.
‫Được rồi, bây giờ chúng ta sẽ bắt đầu một vùng chứa mới và sử dụng một số lệnh Docker để quản lý vùng chứa đó.
‫docker container
‫chạy xuất bản 80:80 nginx.
‫Đừng lo lắng nếu bạn không biết tất cả những điều đó có nghĩa là gì. Chúng tôi sẽ xem xét tất cả trong một phút.
‫Tôi sẽ nhấn enter ...
‫chuyển sang trình duyệt của tôi và nhập localhost.
‫Chúng ta bắt đầu.
‫Máy chủ Nginx của chúng tôi đang lắng nghe. Tôi có thể nhấn làm mới vài lần và bạn sẽ thấy các mục nhật
‫ký diễn ra trong dòng lệnh của chúng tôi tại đây.
‫Bây giờ chúng ta vừa làm gì? Trong nền, công cụ
‫Docker thực sự tìm kiếm một hình ảnh có tên là nginx và nó đã kéo xuống hình
‫ảnh mới nhất cho nginx từ Docker Hub. Sau đó, nó bắt đầu nó như một quy trình mới trong một vùng chứa mới để chúng tôi sử dụng.
‫Phần đã xuất bản của lệnh sẽ hiển thị cổng cục bộ 80 trên máy cục bộ của tôi và gửi tất
‫cả lưu lượng từ nó đến tệp thực thi đang chạy bên trong vùng chứa đó trên cổng 80.
‫Và vì Nginx là một máy chủ web, nó sẽ được đặt mặc định là cổng 80 và lưu lượng truy cập chỉ tự động chuyển tiếp qua
‫trình duyệt của tôi đến máy chủ cục bộ của tôi và vào vùng chứa đó.
‫Nhưng không phải lúc nào chúng ta cũng muốn thứ này chạy ở nền trước bên trong dòng lệnh của chúng ta.
‫Vì vậy, hãy nhấn Control c và tôi sẽ nhấn Mũi tên lên và tôi sẽ lùi lại một chút và gõ tách
‫rời.
‫Bây giờ tách ra yêu cầu Docker chạy nó trong nền.
‫Và chúng tôi lấy lại ID vùng chứa duy nhất của vùng chứa của chúng ta.
‫Và mỗi khi bạn chạy một vùng chứa mới, bạn sẽ nhận được một ID duy nhất mới.
‫Vì vậy, nếu chúng tôi quay lại trình duyệt của mình và nhấn refresh một vài lần, bạn có thể thấy rằng nó vẫn đang chạy.
‫Vì vậy, hãy thực hiện một lệnh để liệt kê các vùng chứa của chúng ta. docker container ls Và bạn sẽ thấy một
‫cái
‫vẫn đang chạy ở đây.
‫Nó khớp với ID vùng chứa của lệnh chúng ta vừa chạy. Bạn sẽ thấy vùng chứa vẫn chạy mà chúng tôi
‫vừa bắt đầu.
‫Vì vậy, chúng ta hãy dừng thùng chứa đó thật nhanh chóng.
‫docker container dừng. Sau đó là ID vùng chứa. Đối với ID vùng chứa, tôi chỉ phải
‫nhập một vài chữ số đầu tiên, đủ để nó là duy nhất và tôi đã dừng nó.
‫Bây giờ nếu tôi làm một công cụ chứa docker ls, bạn sẽ nhận thấy không có gì hiển thị.
‫Vì vậy, lệnh ls chỉ hiển thị theo các vùng chứa đang chạy mặc định.
‫Nếu tôi thực hiện một ls -a, tôi sẽ nhận lại được hai. Bây giờ, tại sao tôi nhận được hai?
‫Khi chúng tôi chạy mỗi lần lệnh chạy vùng chứa của docker, nó bắt đầu một vùng chứa mới
‫từ hình ảnh Nginx đó. Bạn sẽ nhận thấy ở bên phải có những cái tên ngẫu nhiên này. Chúng tôi đã không sử dụng những thứ này.
‫Làm thế nào chúng tôi có được những thứ này?
‫Vì vậy, ID vùng chứa luôn được tạo cho chúng tôi.
‫Và tên cũng bắt buộc phải là duy nhất.
‫Và nếu chúng tôi không chỉ định nó, nó sẽ được tạo ra cho chúng tôi. Chúng ta luôn có thể tự đặt tên cho một
‫thứ gì đó, nhưng nếu chúng ta để nó tự chọn, thì thực sự có một chút thú vị về lịch sử
‫xung quanh Docker là họ đã có điều này trong nhiều năm nay rằng tên đó sẽ được tạo ngẫu nhiên từ một danh sách
‫mã nguồn mở gồm các tính từ và họ của các tin tặc hoặc nhà khoa học đáng chú ý.
‫Và khá buồn cười là đôi khi bạn sẽ nhận được một số cái tên thực sự kỳ lạ trong đó.
‫Vì vậy, hãy tạo một cái mới. docker container chạy. Đưa vào xuất bản
‫của chúng tôi và tách của chúng tôi.
‫Nhưng lần này chúng ta sẽ chỉ định một cái tên. Tôi sẽ gọi nó là webhost nginx.
‫Và bây giờ nếu tôi làm thùng chứa docker của tôi -a bạn sẽ thấy ba thùng chứa.
‫Một trong những chúng tôi chỉ mới bắt đầu. Nó có tên là webhost và sau đó là hai tên mà chúng tôi đã
‫bắt đầu trước đó và sau đó dừng lại.
‫Vì chúng tôi không chạy tính năng này ở nền trước nữa, nên chúng tôi không thể nhìn thấy nhật ký.
‫Vì vậy, hãy quay lại trình duyệt của chúng tôi và tôi sẽ nhấn làm mới một vài lần để tạo một số nhật ký.
‫Sau đó, quay lại thiết bị đầu cuối của chúng tôi và tôi sẽ thực hiện ghi nhật ký vùng chứa docker webhost. Và nó sẽ đưa ra các bản ghi mới nhất trong
‫webhost.
‫Có một số tùy chọn mà bạn muốn thực hiện trên lệnh nhật ký để lệnh này tự động theo dõi nhật ký hoặc
‫có thể chỉ ghi lại một vài sự kiện nhật ký cuối cùng để bạn không kết thúc với việc toàn bộ tệp nhật ký
‫bị lưu vào màn hình của bạn .
‫Chúng ta cũng có thể sử dụng một số lệnh vùng chứa docker khác để kiểm tra vùng chứa đang chạy đó. Chúng ta có thể thử phần đầu
‫của docker container. Bạn có thể xem trợ giúp ở đó.
‫Điều đó cho chúng tôi biết chúng tôi cần chỉ định webhost tên vùng chứa. Bạn có thể thấy đây là quá trình đang chạy bên
‫trong vùng chứa.
‫Bây giờ đối với Nginx, chúng ta không nhất thiết phải biết tất cả những điều này nhưng thật thú vị
‫khi lưu ý
‫rằng với Nginx, thực sự có một quy trình tổng thể và sau đó nó sinh ra các quy trình công nhân dựa trên cấu hình.
‫Một lần nữa, chúng ta luôn có thể nhập vùng chứa docker và --help để nhận danh sách tất cả các lệnh mà chúng ta có
‫thể thử trên vùng chứa đó.
‫Bây giờ chúng ta hãy dọn dẹp những gì chúng ta vừa làm.
‫Vì vậy, chúng ta hãy làm một container docker.
‫ls -a, và đó là danh sách tất cả ba thùng chứa của tôi.
‫Bây giờ, tôi thực sự sẽ xóa cả ba cùng một lúc.
‫Đôi khi các lệnh con của Docker thực sự có thể nhận nhiều giá trị.
‫Vì vậy, trong trường hợp này, tôi có thể tạo một thùng chứa docker rm và sau đó tôi thực sự có thể chỉ định 63f 690 và ode.
‫rất tiếc 0de.
‫Vì vậy, tôi đã có một lỗi. Chuyện gì vừa xảy ra ở đây?
‫Được rồi. Hai đầu tiên đã được xóa một cách an toàn.
‫Cái thứ ba nó nói với tôi rằng tôi không thể tháo một thùng chứa đang chạy vì đó là một biện pháp an toàn.
‫Nó đảm bảo rằng bạn không vô tình xóa quá trình thực vẫn đang chạy. Nếu bạn làm một thùng chứa docker, bạn
‫sẽ thấy chúng tôi vẫn còn một thùng chứa đang chạy.
‫Bây giờ tôi thực sự có thể thực hiện một trạm dừng container docker để dừng nó trước và sau đó loại bỏ nó.
‫Nhưng tôi thực sự sẽ làm một docker container rm -f cho lực lượng và 63f. Và chúng ta bắt đầu.
‫Bây giờ nếu tôi làm một container docker, bạn sẽ thấy rằng không có gì ở đó.
‫Vì vậy, bây giờ chúng tôi đã dọn dẹp đống lộn xộn của mình.
‫ĐƯỢC RỒI.
‫Vì vậy, chỉ trong vài phút, chúng tôi đã có thể sử dụng một lệnh duy nhất để tải xuống và chạy máy chủ web
‫Nginx với cấu hình mặc định đang lắng nghe trên cổng 80 và sau đó chúng tôi có thể tạo một số trong số đó, chơi với
‫nhật ký và sau đó xóa thùng chứa để dọn dẹp những gì chúng tôi đã làm.