Podman (POD MANager) là một công cụ chứa tuân thủ OCI, được Red Hat phát triển như một sự thay thế cho Docker. Nó được sử dụng để quản lý và chạy các container, hình ảnh và khối lượng thông qua giao diện dòng lệnh. Cả Docker và Podman đều là phần mềm tương tự nhau. Điểm khác biệt duy nhất là Podman không yêu cầu daemon để chạy container, trong khi Docker cần daemon Docker Engine. Podman sử dụng thư viện libpod để quản lý toàn bộ hệ sinh thái container.
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 trên Debian 11.
Sau khi Podman được cài đặt, hãy xác minh phiên bản Podman bằng lệnh bên dưới:
Bạn sẽ thấy phiên bản Podman trong đầu ra sau:
Bạn có thể biết thêm thông tin về Podman bằng lệnh sau:
Bạn sẽ nhận được đầu ra sau:
Thêm các dòng sau vào cuối tệp:
Lưu và đóng tệp khi bạn hoàn tất.
Để kéo hình ảnh Debian, hãy chạy lệnh sau:
Bạn sẽ nhận được kết quả sau:
Bạn có thể xem hình ảnh đã tải xuống bằng lệnh sau:
Bạn sẽ nhận được kết quả sau:
Tiếp theo, chạy một container từ hình ảnh Debian bằng lệnh sau:
Bạn sẽ nhận được kết quả sau đầu ra:
Bạn có thể liệt kê tất cả các container đang chạy bằng lệnh sau:
Bạn sẽ thấy đầu ra sau:
Để kiểm tra container đang chạy, hãy chạy lệnh Podman bằng cách chỉ định ID container:
Bạn sẽ nhận được đầu ra sau:
Để kiểm tra nhật ký container, hãy chạy lệnh sau:
Nếu bạn muốn kết nối với container đang chạy, hãy chạy lệnh sau:
Bạn sẽ vào được shell container như hiển thị bên dưới:
Để thoát khỏi shell container, hãy chạy lệnh sau:
Để dừng một container đang chạy, hãy chạy lệnh sau:
Bây giờ bạn có thể xác minh container đã dừng bằng lệnh sau:
Bạn sẽ thấy đầu ra sau:
Để xóa một container đã dừng, hãy chạy lệnh sau:
Nếu bạn muốn dừng container mới nhất, hãy chạy lệnh sau:
Để khởi động container mới nhất, hãy chạy lệnh sau:
Để xóa container mới nhất, hãy chạy lệnh sau:
Để xóa tất cả các container đang chạy, hãy chạy lệnh sau:
Để xóa một hình ảnh, hãy chạy lệnh sau:
Bạn sẽ nhận được kết quả sau:
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 trên Debian 11.
Điều kiện tiên quyết
- Máy chủ chạy Debian 11.
- Mật khẩu gốc được cấu hình trên máy chủ.
Cài đặt Podman
Gói Podman được bao gồm trong kho lưu trữ mặc định của Debian 11. Bạn có thể cài đặt bằng cách chỉ cần chạy lệnh sau:
Mã:
apt-get install podman -y
Mã:
podman --version
Mã:
podman version 3.0.1
Mã:
podman info
Mã:
host: arch: amd64 buildahVersion: 1.19.6 cgroupManager: systemd cgroupVersion: v2 conmon: package: 'conmon: /usr/bin/conmon' path: /usr/bin/conmon version: 'conmon version 2.0.25, commit: unknown' cpus: 2 distribution: distribution: debian phiên bản: "11" eventLogger: journald tên máy chủ: debian11 idMappings: gidmap: null uidmap: null hạt nhân: 5.10.0-8-amd64 chế độ liên kết: động memFree: 3365183488 memTotal: 4122267648 ociRuntime: tên: crun gói: 'crun: /usr/bin/crun' đường dẫn: /usr/bin/crun phiên bản: |- phiên bản crun 0.17 cam kết: 0e9229ae34caaebcb86f1fde18de3acaf18c6d9a thông số kỹ thuật: 1.0.0 +SYSTEMD +SELINUX +APPARMOR +CAP +SECCOMP +EBPF +YAJL hệ điều hành: linux remoteSocket: tồn tại: đúng đường dẫn: /run/podman/podman.sock bảo mật: apparmorEnabled: đúng khả năng: CAP_CHOWN, CAP_DAC_OVERRIDE, CAP_FOWNER, CAP_FSETID, CAP_KILL, CAP_NET_BIND_SERVICE, CAP_SETFCAP, CAP_SETGID, CAP_SETPCAP, CAP_SETUID, CAP_SYS_CHROOT rootless: false seccompEnabled: true selinuxEnabled: false
Thêm OCI Registry
Podman sử dụng tệp cấu hình sổ đăng ký /etc/containers/registries.conf để kéo tất cả hình ảnh vùng chứa từ internet. Vì vậy, bạn sẽ cần chỉnh sửa nó và xác định sổ đăng ký:
Mã:
nano /etc/containers/registries.conf
Mã:
[registries.insecure]registries = [ ]# Nếu bạn cần chặn quyền truy cập kéo từ sổ đăng ký, hãy bỏ chú thích phần bên dưới# và thêm tên đủ điều kiện của sổ đăng ký.# Chỉ Docker[registries.block]registries = [ ]
Cách sử dụng Podman
Trong phần này, chúng tôi sẽ chỉ cho bạn cách sử dụng lệnh Podman để kéo hình ảnh và chạy một vùng chứa.Để kéo hình ảnh Debian, hãy chạy lệnh sau:
Mã:
podman pull debian
Mã:
Đã giải quyết "debian" thành một bí danh (/etc/containers/registries.conf.d/shortnames.conf)Đang cố gắng kéo docker.io/library/debian:latest...Đang lấy chữ ký nguồn hình ảnhĐang sao chép blob 647acf3d48c2 xongĐang sao chép config 827e561138 xongĐang ghi manifest vào đích hình ảnhĐang lưu trữ signatures827e5611389abf13dad1057e92f163b771febc0bcdb19fa2d634a7eb0641e0cc
Mã:
hình ảnh podman
Mã:
THẺ KHO LƯU TRỮ ID ẢNH KÍCH THƯỚC ĐÃ TẠOdocker.io/library/debian latest 827e5611389a 11 ngày trước 129 MB
Mã:
podman run -dit debian:latest
Mã:
f85c4df5ab787912c984ec820571da7b95b32736ef94ba691d9ab5019c5b5103
Mã:
podman ps
Mã:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMESf85c4df5ab78 docker.io/library/debian:latest bash 13 giây trước Đã lên 13 giây trước capable_cori
Mã:
podman inspect f85c4df5ab78
Mã:
[ { "Id": "f85c4df5ab787912c984ec820571da7b95b32736ef94ba691d9ab5019c5b5103", "Đã tạo": "2021-11-28T07:00:12.795302341Z", "Đường dẫn": "bash", "Đối số": [ "bash" ], "Trạng thái": { "OciVersion": "1.0.2-dev", "Trạng thái": "đang chạy", "Đang chạy": true, "Tạm dừng": false, "Đang khởi động lại": false, "OOMKilled": false, "Đã chết": false, "Pid": 6881, "ConmonPid": 6878, "Mã thoát": 0, "Lỗi": "", "Đã bắt đầu": "2021-11-28T07:00:13.551753552Z", "FinishedAt": "0001-01-01T00:00:00Z", "Healthcheck": { "Status": "", "FailingStreak": 0, "Log": null } },
Mã:
podman logs f85c4df5ab78
Mã:
podman exec -it f85c4df5ab78 /bin/bash
Mã:
root@f85c4df5ab78:/#
Mã:
root@f85c4df5ab78:/# exit
Cách dừng và xóa một container
Bạn cũng có thể sử dụng Podman để khởi động, dừng và xóa một container.Để dừng một container đang chạy, hãy chạy lệnh sau:
Mã:
podman stop f85c4df5ab78
Mã:
podman ps -a
Mã:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMESf85c4df5ab78 docker.io/library/debian:latest bash 3 phút trước Exited (137) 10 giây trước capable_cori
Mã:
podman rm f85c4df5ab78
Mã:
podman stop --latest
Mã:
podman start --latest
Mã:
podman rm --latest
Mã:
podman rm -f `podman ps -aq`
Mã:
podman rmi 827e5611389a
Mã:
Không có thẻ: docker.io/library/debian:latestĐã xóa: 827e5611389abf13dad1057e92f163b771febc0bcdb19fa2d634a7eb0641e0cc