Podman là một công cụ gốc Linux để triển khai các ứng dụng sử dụng các container và hình ảnh container của Sáng kiến chứa mở (OCI). Công cụ này hỗ trợ nhiều định dạng hình ảnh container, bao gồm hình ảnh Docker và hình ảnh container OCI. Ngoài ra, Podman còn hỗ trợ quản lý các pod và nhóm container.
Podman là một công cụ không có daemon, chạy như một dòng lệnh nhị phân duy nhất mà không cần dịch vụ. Công cụ này cung cấp một dòng lệnh tương tự như Docker, bạn có thể sử dụng một bí danh như 'alias docker=podman'.
Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách cài đặt và sử dụng Podman để thay thế cho Docker Engine trên máy chủ AlmaLinux 9. Bạn sẽ học cách sử dụng một số điều cơ bản của Podman để quản lý các ứng dụng container. Khi hoàn thành hướng dẫn này, bạn sẽ nắm rõ hơn về cách sử dụng Podman làm công cụ phối hợp vùng chứa cho quá trình phát triển cục bộ của mình.
Với Podman, bạn có thể tìm, chạy, chia sẻ và triển khai các ứng dụng bằng cách sử dụng các container OCI (Open Containers Initiative) và hình ảnh container.
Trên AlmaLinux, Podman có sẵn theo mặc định trên kho lưu trữ AppStream, bạn có thể cài đặt nó bằng trình quản lý gói DNF.
Chạy lệnh dnf sau để cài đặt Podman trên AlmaLinux của bạn máy chủ.
Nhập y khi được nhắc, sau đó nhấn ENTER.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22481%22%3E%3C/svg%3E
Vì Podman không có daemon, bạn có thể chạy nó mà không cần khởi động bất kỳ daemon nào.
Chạy lệnh sau để kiểm tra phiên bản Podman và thông tin chi tiết thông tin về cài đặt của bạn.
Dưới đây là đầu ra của phiên bản Podman hiện tại trong quá trình viết bài này:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22411%22%20height=%22211%22%3E%3C/svg%3E
Ngoài ra, bạn cũng có thể xác minh thông tin chi tiết về cài đặt Podman bằng cách sử dụng lệnh.
Chạy lệnh sau để tạo một người dùng mới có tên là 'alice' và cấu hình mật khẩu cho người dùng đó. Nhập mật khẩu mới khi được nhắc, sau đó lặp lại.
Bây giờ, hãy thêm người dùng mới 'alice' vào nhóm 'wheel'. Điều này cho phép người dùng mới thực thi 'sudo' và trở thành root.
Sau đó, chạy lệnh sau để bật chế độ chờ cho người dùng 'alice'. Điều này cho phép người dùng 'alice' chạy quy trình chứa trong một thời gian dài, ngay cả khi người dùng đã đăng xuất, quy trình vẫn sẽ chạy.
Tiếp theo, hãy đăng nhập với tư cách là người dùng mới 'alice' bằng lệnh bên dưới.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22578%22%20height=%22298%22%3E%3C/svg%3E
Chạy lệnh 'podman' bên dưới để chạy một vùng chứa mới với hình ảnh 'hello-world'.
Nếu thành công, bạn sẽ nhận được kết quả như sau:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22532%22%20height=%22381%22%3E%3C/svg%3E
Cuối cùng, chạy lệnh 'podman' sau để xác minh danh sách các container đang chạy và đã thoát.
Nếu cấu hình thành công, bạn sẽ thấy container có hình ảnh cơ sở 'hello-world' với trạng thái 'Đã thoát'.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%2279%22%3E%3C/svg%3E
Ví dụ này sẽ sử dụng DockerHub làm sổ đăng ký container, vì vậy chúng ta hãy bắt đầu.
Chạy lệnh sau để tìm hình ảnh container mới chứa 'httpd'.
Dưới đây là đầu ra bạn sẽ nhận được trên thiết bị đầu cuối của mình:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22635%22%3E%3C/svg%3E
Bạn cũng có thể giới hạn đầu ra bằng cách sử dụng tùy chọn '--limit' như thế này.
Điều này sẽ chỉ hiển thị ba hình ảnh container hàng đầu từ mỗi sổ đăng ký hình ảnh container.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22227%22%3E%3C/svg%3E
Cuối cùng, bạn cũng có thể sử dụng tùy chọn '--filter' như thế này.
Điều này sẽ chỉ hiển thị cho bạn hình ảnh container chính thức.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22578%22%20height=%22121%22%3E%3C/svg%3E
Chạy lệnh sau để tải xuống hình ảnh 'httpd' có thẻ 'alpine'.
Chọn sổ đăng ký hình ảnh mà bạn muốn sử dụng. Ví dụ này sẽ sử dụng DockerHub.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22489%22%20height=%22138%22%3E%3C/svg%3E
Sau khi chọn nguồn, quá trình tải xuống sẽ bắt đầu.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22608%22%20height=%22335%22%3E%3C/svg%3E
Sau khi hoàn tất, hãy chạy lệnh sau để kiểm tra các hình ảnh có sẵn trên AlmaLinux của bạn máy chủ.
Tại thời điểm này, nếu thành công, bạn sẽ nhận được hai hình ảnh chứa, hình ảnh 'hello-world' từ quay.io và 'httpd' từ DockerHub.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22688%22%20height=%22139%22%3E%3C/svg%3E
Chạy lệnh sau để có được thông tin chi tiết về hình ảnh 'httpd:alpine'.
Điều này sẽ hiển thị cho bạn thông tin chi tiết về hình ảnh, chẳng hạn như ngày tạo, kích thước, thư mục làm việc mặc định, lệnh bắt đầu, cổng được hiển thị và nhiều thông tin khác.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22483%22%3E%3C/svg%3E
Bạn cũng có thể chỉ định phần nào bạn muốn kiểm tra bằng cách sử dụng tham số bổ sung như thế này.
Điều này sẽ hiển thị cho bạn kích thước của hình ảnh, cổng mặc định được hiển thị và thư mục làm việc mặc định.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22140%22%3E%3C/svg%3E
Nhập lệnh sau để chạy một container mới có tên là 'httpd', hiển thị cổng 8080 trên máy chủ và sử dụng hình ảnh 'httpd:alpine'. Ngoài ra, tham số '--rm' sẽ tự động xóa vùng chứa khi vùng chứa dừng lại.
Nếu thành công, bạn sẽ nhận được chuỗi ngẫu nhiên và số của id vùng chứa mới.
Kiểm tra vùng chứa đang chạy bằng lệnh sau. Bạn sẽ nhận được container 'httpd' có trạng thái 'Up' và sử dụng cổng 8080 trên máy chủ.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22127%22%3E%3C/svg%3E
Tiếp theo, bạn có thể kiểm tra container 'httpd' bằng lệnh curl bên dưới. Hãy đảm bảo thay thế địa chỉ IP trong ví dụ bên dưới bằng địa chỉ IP máy chủ của bạn.
Nếu thành công, bạn sẽ nhận được kết quả như sau:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22511%22%20height=%22119%22%3E%3C/svg%3E
Ngoài ra, bạn cũng có thể truy cập vào vùng chứa 'httpd' thông qua trình duyệt web. Mở trình duyệt web của bạn và truy cập địa chỉ IP của máy chủ theo sau là cổng container 8080 (ví dụ: http://192.168.5.20:8080/).
Nếu thành công, bạn sẽ nhận được trang index.html mặc định từ container 'httpd' như thế này:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22499%22%20height=%22129%22%3E%3C/svg%3E
Để hiển thị tất cả các bản ghi từ vùng chứa 'httpd', hãy chạy lệnh sau.
Đây là một ví dụ về các bản ghi từ vùng chứa 'httpd'.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22113%22%3E%3C/svg%3E
Tiếp theo, bạn có thể giảm đầu ra nhật ký bằng cách sử dụng tham số '--tail' như thế này.
Trong ví dụ này, tham số 'tail 20' sẽ hiển thị cho bạn 20 dòng nhật ký mới nhất từ container 'httpd'.
Chạy lệnh sau để dừng container 'httpd'.
Sau khi container 'httpd' dừng, hãy chạy lệnh bên dưới để kiểm tra danh sách các container khả dụng trên hệ thống.
Vùng chứa 'httpd' sẽ tự động bị xóa sau khi vùng chứa bị dừng. Điều này là do bạn chạy container với tham số '--rm'.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22145%22%3E%3C/svg%3E
Tạo một thư mục 'data' mới trong thư mục home của người dùng alice. Sau đó, tạo tệp 'index.html mới bên trong thư mục 'data' bằng trình chỉnh sửa nano.
Chèn tập lệnh HTML sau.
Lưu và đóng tệp.
Bây giờ, hãy thực thi lệnh sau để chạy một vùng chứa mới 'httpd' với ổ đĩa tùy chỉnh của thư mục 'data', sẽ được gắn vào thư mục '/usr/local/apache2/htdocs' trên container.
Ngoài ra, container này đang chạy với tham số bổ sung '--privileged=true'. Đây là để thử nghiệm, nhưng container vẫn sẽ được chạy với tư cách là người dùng 'alice' chứ không phải người dùng root. Tìm hiểu thêm thông tin về cờ đặc quyền trên Podman.
Tiếp theo, chạy lệnh sau để kiểm tra vùng chứa đang chạy trên hệ thống của bạn.
Nếu thành công, bạn sẽ thấy vùng chứa mới 'httpd' có trạng thái 'Up' và cổng 8080 được hiển thị trên máy chủ.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22102%22%3E%3C/svg%3E
Chạy lệnh curl bên dưới để xác minh vùng chứa mới 'httpd'.
Bạn sẽ nhận được kết quả đầu ra của tập lệnh index.html mà bạn đã tạo trước đó.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22598%22%20height=%22283%22%3E%3C/svg%3E
Từ trình duyệt web trên http://192.168.5.21:8080/, bạn sẽ thấy trang tùy chỉnh như thế này:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22659%22%20height=%22157%22%3E%3C/svg%3E
Đăng nhập vào container 'httpd' bằng lệnh sau. Lệnh này sẽ thực thi shell '/bin/sh' trên container 'httpd' và đính kèm nó vào phiên hiện tại của bạn.
Sau khi đăng nhập, bạn sẽ ở trong thư mục 'WorkingDir'. Trong ví dụ này, WorkingDir mặc định là thư mục '/usr/local/apache2'.
Bây giờ hãy chạy lệnh sau trên vùng chứa 'httpd'. Kiểm tra người dùng hiện tại, địa chỉ IP cục bộ của vùng chứa và cổng mặc định cho vùng chứa.
Bạn có thể có đầu ra với địa chỉ IP và cổng khác, nhưng phải tương tự như sau:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22560%22%3E%3C/svg%3E
Với Podman, bạn có thể tạo và chạy Pod, ngay cả khi không có Kubernetes.
Chạy lệnh sau để tạo một pod httpdTest mới với hình ảnh 'httpd:alpine' và hiển thị cổng 9090 trên máy chủ.
Nếu thành công, bạn sẽ nhận được chuỗi ngẫu nhiên và số ID Pod.
Bây giờ hãy chạy lệnh sau để kiểm tra Pod đang chạy trên hệ thống.
Bạn sẽ thấy Pod 'httpdTest' có trạng thái 'Đang chạy' và 2 vùng chứa.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22165%22%3E%3C/svg%3E
Bây giờ bạn có thể sử dụng tùy chọn 'kiểm tra' trên pod như thế này.
Bạn sẽ nhận được thông tin chi tiết về pod httpdTest.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22618%22%3E%3C/svg%3E
Bạn cũng có thể kiểm tra số lượng container chạy trong pod bao gồm tên container bằng cách sử dụng lệnh sau lệnh.
Bạn sẽ nhận được kết quả như sau:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%2284%22%3E%3C/svg%3E
Cuối cùng, hãy chạy lệnh sau để truy cập pod httpdTest, đang chạy trên cổng 9090 trên máy chủ. Nếu thành công, bạn sẽ nhận được các container trang index.html mặc định chạy trên pod httpdTest.
Podman là một công cụ không có daemon, chạy như một dòng lệnh nhị phân duy nhất mà không cần dịch vụ. Công cụ này cung cấp một dòng lệnh tương tự như Docker, bạn có thể sử dụng một bí danh như 'alias docker=podman'.
Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách cài đặt và sử dụng Podman để thay thế cho Docker Engine trên máy chủ AlmaLinux 9. Bạn sẽ học cách sử dụng một số điều cơ bản của Podman để quản lý các ứng dụng container. Khi hoàn thành hướng dẫn này, bạn sẽ nắm rõ hơn về cách sử dụng Podman làm công cụ phối hợp vùng chứa cho quá trình phát triển cục bộ của mình.
Điều kiện tiên quyết
Để bắt đầu sử dụng hướng dẫn này, bạn phải có những điều sau:- Máy chủ AlmaLinux 9 - Ví dụ này sử dụng máy chủ có tên máy chủ là 'AlmaLinux9'.
- Người dùng không phải root có quyền quản trị viên sudo/root.
Cài đặt Podman
Podman là công cụ phối hợp vùng chứa không cần daemon và mã nguồn mở để phát triển nhanh. Podman là ứng dụng gốc của Linux và cung cấp giao diện dòng lệnh tương tự như Docker.Với Podman, bạn có thể tìm, chạy, chia sẻ và triển khai các ứng dụng bằng cách sử dụng các container OCI (Open Containers Initiative) và hình ảnh container.
Trên AlmaLinux, Podman có sẵn theo mặc định trên kho lưu trữ AppStream, bạn có thể cài đặt nó bằng trình quản lý gói DNF.
Chạy lệnh dnf sau để cài đặt Podman trên AlmaLinux của bạn máy chủ.
Mã:
sudo dnf install podman
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22481%22%3E%3C/svg%3E
Vì Podman không có daemon, bạn có thể chạy nó mà không cần khởi động bất kỳ daemon nào.
Chạy lệnh sau để kiểm tra phiên bản Podman và thông tin chi tiết thông tin về cài đặt của bạn.
Mã:
podman version
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22411%22%20height=%22211%22%3E%3C/svg%3E
Ngoài ra, bạn cũng có thể xác minh thông tin chi tiết về cài đặt Podman bằng cách sử dụng lệnh.
Mã:
podman info
Chạy Podman với tư cách là Người dùng không phải root
Trong phần này, bạn sẽ thiết lập Podman cho người dùng không phải root. Bạn sẽ tạo một người dùng mới và đảm bảo rằng người dùng không phải root mới có thể thực thi và chạy các container bằng Podman.Chạy lệnh sau để tạo một người dùng mới có tên là 'alice' và cấu hình mật khẩu cho người dùng đó. Nhập mật khẩu mới khi được nhắc, sau đó lặp lại.
Mã:
sudo useradd -m -s /bin/bash alice
sudo passwd alice
Mã:
sudo usermod -aG wheel alice
Mã:
sudo loginctl enable-linger alice
Mã:
su - alice
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22578%22%20height=%22298%22%3E%3C/svg%3E
Chạy lệnh 'podman' bên dưới để chạy một vùng chứa mới với hình ảnh 'hello-world'.
Mã:
podman run hello-world
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22532%22%20height=%22381%22%3E%3C/svg%3E
Cuối cùng, chạy lệnh 'podman' sau để xác minh danh sách các container đang chạy và đã thoát.
Mã:
podman ps -a
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%2279%22%3E%3C/svg%3E
Tìm hình ảnh container
Theo mặc định, Podman sẽ lấy hình ảnh container từ nhiều sổ đăng ký hình ảnh, chẳng hạn như sổ đăng ký hình ảnh Redhat, quay.io và cả DockerHub. Bạn có thể thêm nhiều sổ đăng ký hình ảnh container hơn vào cấu hình '/etc/containers/registries.conf'.Ví dụ này sẽ sử dụng DockerHub làm sổ đăng ký container, vì vậy chúng ta hãy bắt đầu.
Chạy lệnh sau để tìm hình ảnh container mới chứa 'httpd'.
Mã:
podman search httpd
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22635%22%3E%3C/svg%3E
Bạn cũng có thể giới hạn đầu ra bằng cách sử dụng tùy chọn '--limit' như thế này.
Mã:
podman search httpd --limit 3
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22227%22%3E%3C/svg%3E
Cuối cùng, bạn cũng có thể sử dụng tùy chọn '--filter' như thế này.
Mã:
podman search httpd --filter=is-official
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22578%22%20height=%22121%22%3E%3C/svg%3E
Tải xuống hình ảnh
Sau khi tìm thấy hình ảnh chứa, bước tiếp theo là tải xuống hình ảnh chứa từ sổ đăng ký.Chạy lệnh sau để tải xuống hình ảnh 'httpd' có thẻ 'alpine'.
Mã:
podman pull httpd:alpine
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22489%22%20height=%22138%22%3E%3C/svg%3E
Sau khi chọn nguồn, quá trình tải xuống sẽ bắt đầu.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22608%22%20height=%22335%22%3E%3C/svg%3E
Sau khi hoàn tất, hãy chạy lệnh sau để kiểm tra các hình ảnh có sẵn trên AlmaLinux của bạn máy chủ.
Mã:
podman images
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22688%22%20height=%22139%22%3E%3C/svg%3E
Kiểm tra hình ảnh
Kiểm tra hình ảnh là một công cụ mạnh mẽ để có được thông tin chi tiết về cách container sẽ bắt đầu. Trên Podman và Docker, bạn có thể kiểm tra hình ảnh bằng tùy chọn 'inspect'.Chạy lệnh sau để có được thông tin chi tiết về hình ảnh 'httpd:alpine'.
Mã:
podman inspect docker.io/library/httpd:alpine
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22483%22%3E%3C/svg%3E
Bạn cũng có thể chỉ định phần nào bạn muốn kiểm tra bằng cách sử dụng tham số bổ sung như thế này.
Mã:
podman inspect --format "size: {{.Size}}" docker.io/library/httpd:alpine
podman inspect --format "ports: {{.Config.ExposedPorts}}" docker.io/library/httpd:alpine
podman inspect --format "workdir: {{.Config.WorkingDir}}" docker.io/library/httpd:alpine
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22140%22%3E%3C/svg%3E
Chạy Container
Trong phần này, bạn sẽ học cách chạy container bằng Podman.Nhập lệnh sau để chạy một container mới có tên là 'httpd', hiển thị cổng 8080 trên máy chủ và sử dụng hình ảnh 'httpd:alpine'. Ngoài ra, tham số '--rm' sẽ tự động xóa vùng chứa khi vùng chứa dừng lại.
Mã:
podman run -it --rm -d -p 8080:80 --name httpd docker.io/library/httpd:alpine
Kiểm tra vùng chứa đang chạy bằng lệnh sau. Bạn sẽ nhận được container 'httpd' có trạng thái 'Up' và sử dụng cổng 8080 trên máy chủ.
Mã:
podman ps
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22127%22%3E%3C/svg%3E
Tiếp theo, bạn có thể kiểm tra container 'httpd' bằng lệnh curl bên dưới. Hãy đảm bảo thay thế địa chỉ IP trong ví dụ bên dưới bằng địa chỉ IP máy chủ của bạn.
Mã:
curl http://192.168.5.20:8080/
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22511%22%20height=%22119%22%3E%3C/svg%3E
Ngoài ra, bạn cũng có thể truy cập vào vùng chứa 'httpd' thông qua trình duyệt web. Mở trình duyệt web của bạn và truy cập địa chỉ IP của máy chủ theo sau là cổng container 8080 (ví dụ: http://192.168.5.20:8080/).
Nếu thành công, bạn sẽ nhận được trang index.html mặc định từ container 'httpd' như thế này:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22499%22%20height=%22129%22%3E%3C/svg%3E
Kiểm tra Nhật ký Container
Khi container 'httpd' đã hoạt động, bây giờ bạn sẽ kiểm tra nhật ký từ container. Biết điều này sẽ hữu ích cho việc gỡ lỗi ứng dụng của bạn.Để hiển thị tất cả các bản ghi từ vùng chứa 'httpd', hãy chạy lệnh sau.
Mã:
podman logs httpd
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22113%22%3E%3C/svg%3E
Tiếp theo, bạn có thể giảm đầu ra nhật ký bằng cách sử dụng tham số '--tail' như thế này.
Mã:
podman logs --tail 20 httpd
Dừng Container
Bây giờ, nếu bạn muốn dừng container, chỉ cần chạy lệnh `podman stop`.Chạy lệnh sau để dừng container 'httpd'.
Mã:
podman stop httpd
Mã:
podman ps
podman ps -a
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22145%22%3E%3C/svg%3E
Chạy container với Custom Volume
Trong ví dụ này, bạn sẽ chạy một container mới với custom volume. Thao tác này sẽ gắn thư mục cục bộ trên máy chủ vào container.Tạo một thư mục 'data' mới trong thư mục home của người dùng alice. Sau đó, tạo tệp 'index.html mới bên trong thư mục 'data' bằng trình chỉnh sửa nano.
Mã:
mkdir -p ~/data/
nano ~/data/index.html
Mã:
Welcome to Container Nginx
[HEADING=2]Hello from httpd container - Managed with Podman[/HEADING]
Bây giờ, hãy thực thi lệnh sau để chạy một vùng chứa mới 'httpd' với ổ đĩa tùy chỉnh của thư mục 'data', sẽ được gắn vào thư mục '/usr/local/apache2/htdocs' trên container.
Mã:
podman run --privileged=true -it --rm -d -p 8080:80 --name httpd -v ~/data:/usr/local/apache2/htdocs docker.io/library/httpd:alpine
Tiếp theo, chạy lệnh sau để kiểm tra vùng chứa đang chạy trên hệ thống của bạn.
Mã:
podman ps
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22102%22%3E%3C/svg%3E
Chạy lệnh curl bên dưới để xác minh vùng chứa mới 'httpd'.
Mã:
curl http://192.168.5.21:8080/
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22598%22%20height=%22283%22%3E%3C/svg%3E
Từ trình duyệt web trên http://192.168.5.21:8080/, bạn sẽ thấy trang tùy chỉnh như thế này:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22659%22%20height=%22157%22%3E%3C/svg%3E
Đăng nhập vào Container
Khi container 'httpd' đang chạy, bạn có thể truy cập container thông qua shell bằng cách sử dụng lệnh 'podman exec'.Đăng nhập vào container 'httpd' bằng lệnh sau. Lệnh này sẽ thực thi shell '/bin/sh' trên container 'httpd' và đính kèm nó vào phiên hiện tại của bạn.
Mã:
podman exec -it httpd /bin/sh
Bây giờ hãy chạy lệnh sau trên vùng chứa 'httpd'. Kiểm tra người dùng hiện tại, địa chỉ IP cục bộ của vùng chứa và cổng mặc định cho vùng chứa.
Mã:
id
ip a
route -n
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22560%22%3E%3C/svg%3E
Chạy và quản lý Pod
Trong Podman, bạn có thể tạo và chạy Pod. Pod là một wrapper cho các container, nghĩa là nhiều container có thể chạy trên một Pod duy nhất. Giống như trong Kubernetes, Pod là thực thể nhỏ nhất mà ứng dụng của bạn đang chạy.Với Podman, bạn có thể tạo và chạy Pod, ngay cả khi không có Kubernetes.
Chạy lệnh sau để tạo một pod httpdTest mới với hình ảnh 'httpd:alpine' và hiển thị cổng 9090 trên máy chủ.
Mã:
podman run -dt --pod new:httpdTest -p 9090:80 docker.io/library/httpd:alpine
Bây giờ hãy chạy lệnh sau để kiểm tra Pod đang chạy trên hệ thống.
Mã:
podman pod ls
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22165%22%3E%3C/svg%3E
Bây giờ bạn có thể sử dụng tùy chọn 'kiểm tra' trên pod như thế này.
Mã:
podman pod inspect httpdTest
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22618%22%3E%3C/svg%3E
Bạn cũng có thể kiểm tra số lượng container chạy trong pod bao gồm tên container bằng cách sử dụng lệnh sau lệnh.
Mã:
podman pod inspect --format="containers: {{.NumContainers}}" httpdTest
podman pod inspect --format "{{.Containers}}" httpdTest
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%2284%22%3E%3C/svg%3E
Cuối cùng, hãy chạy lệnh sau để truy cập pod httpdTest, đang chạy trên cổng 9090 trên máy chủ. Nếu thành công, bạn sẽ nhận được các container trang index.html mặc định chạy trên pod httpdTest.
Mã:
curl http://192.168.5.21:9090/