Podman là một công cụ mã nguồn mở để quản lý container, image, volumes và pod (nhóm container). Công cụ này sử dụng API thư viện libpod để quản lý vòng đời container và hỗ trợ nhiều định dạng ảnh container, bao gồm OCI (Open Container Initiative) và ảnh Docker.
Podman là công cụ container tuân thủ OCI (Open Container Initiative). Công cụ này tương thích với giao diện Docker CLI và cho phép bạn chạy container không cần root (chạy container mà không cần quyền root). Podman được phát hành như một phần của Red Hat Enterprise Linux, được thiết kế để trở thành thế hệ công cụ container Linux tiếp theo với khả năng thử nghiệm và phát triển các tính năng nhanh hơn.
Trong hướng dẫn này, bạn sẽ tìm hiểu cách cài đặt Podman trên hệ thống Ubuntu 20.04. Bạn sẽ cài đặt Podman và tìm hiểu cách sử dụng cơ bản của podman để quản lý các container, hình ảnh và ổ đĩa Docker.
1. Thực hiện lệnh sau để xuất các biến môi trường trên tệp '/etc/os-release'.
2. Thêm kho lưu trữ podman với bản phát hành ổn định và thêm khóa GPG vào hệ thống của bạn bằng lệnh bên dưới.
3. Cập nhật/làm mới kho lưu trữ Ubuntu và nâng cấp tất cả các gói lên phiên bản mới nhất.
4. Sau đó, cài đặt podman bằng lệnh apt bên dưới.
Gõ 'y' và nhấn 'Enter' để tiếp tục cài đặt.
5. Sau khi cài đặt hoàn tất, hãy xác minh phiên bản podman bằng lệnh sau.
Dưới đây là kết quả tương tự mà bạn sẽ nhận được.
Như có thể thấy, bạn đã cài đặt podman v3.3.1 được biên dịch bằng Go 1.16 cho kiến trúc Linux amd64 (64-bit).
1. Thực hiện lệnh sau để thêm người dùng mới 'johndoe'.
Nhập mật khẩu mới cho người dùng 'johndoe'.
2. Tiếp theo, đăng nhập với tư cách là người dùng 'johndoe' và chạy container dựa trên hình ảnh Docker 'hello-world'.
Đăng nhập với tư cách là người dùng 'johndoe'.
Chạy container mới dựa trên hình ảnh Docker 'hello-world' bằng lệnh podman.
Bạn sẽ được hỏi về sổ đăng ký container nào bạn muốn sử dụng, hãy chọn sổ đăng ký container 'docker.io' và bạn sẽ thấy đầu ra tương tự như bên dưới.
3. Để xác minh container và hình ảnh của bạn trên máy cục bộ, hãy thực hiện lệnh bên dưới.
Bạn sẽ thấy một container mới được tạo và trạng thái hiện tại là 'Đã thoát'. Container dựa trên hình ảnh Docker 'hello-world'.
1. Để tìm hình ảnh container tương thích với podman, hãy thực hiện lệnh podman bên dưới.
Bạn sẽ thấy danh sách hình ảnh container từ sổ đăng ký hình ảnh Docker mặc định và sổ đăng ký hình ảnh Quay.
Chọn hình ảnh container 'nginx' từ sổ đăng ký Docker và tải xuống máy cục bộ của bạn bằng lệnh podman bên dưới.
Chọn sổ đăng ký container 'docker.io' và quá trình tải xuống hình ảnh container Nginx sẽ bắt đầu.
2. Để kiểm tra hình ảnh container có sẵn trên máy cục bộ của bạn, hãy thực thi lệnh podman bên dưới.
Và bạn sẽ thấy hai hình ảnh - hình ảnh hello-world và nginx.
3. Tiếp theo, để bắt đầu và chạy một container mới dựa trên hình ảnh 'nginx:alpine', hãy thực hiện lệnh podman với tùy chọn 'run' như bên dưới.
Một số tùy chọn bạn phải biết:
Bạn sẽ thấy đầu ra như bên dưới.
Trạng thái container là 'Đang hoạt động' và hiển thị cổng TCP '8080' trên máy chủ.
Mở trình duyệt web của bạn và truy cập địa chỉ IP máy chủ của bạn với cổng '8080' như bên dưới.
Và bạn sẽ thấy tuổi 'index.html' mặc định của container nginx của bạn.
4. Ngoài ra, bạn có thể kiểm tra nhật ký của container bằng tùy chọn 'logs' như bên dưới.
Hoặc bạn có thể chỉ định số dòng cuối cùng của nhật ký container bằng tùy chọn '--tail' như bên dưới.
5. Bây giờ bạn có thể dừng container đang chạy bằng tùy chọn podman 'stop' như bên dưới.
'Web' của container sẽ dừng. Kiểm tra bằng lệnh bên dưới.
Và bạn sẽ thấy đầu ra tương tự như bên dưới.
Bộ chứa 'web' bị dừng và tự động xóa vì bạn đang sử dụng tùy chọn '--rm' trên lệnh podman của mình.
6. Tiếp theo, bạn sẽ học cách sử dụng khối lượng tùy chỉnh để thay đổi 'index.html' mặc định trên vùng chứa mới.
Tạo thư mục mới '~/data' và tệp 'index.html' bằng lệnh sau.
Sao chép và dán tập lệnh HTML bên dưới.
Nhấn nút 'Ctrl+x', nhập 'y', sau đó nhấn 'Enter' để lưu cấu hình và thoát.
Bây giờ hãy thực hiện lệnh podman sau để chạy vùng chứa mới với ổ đĩa tùy chỉnh.
Một tùy chọn bạn phải biết:
Bạn sẽ thấy vùng chứa mới 'web' ở trạng thái 'Đang hoạt động'.
Tiếp theo, hãy mở trình duyệt web và nhập địa chỉ IP máy chủ của bạn với cổng '8080'.
Và bạn sẽ thấy trang index.html tùy chỉnh mà bạn đã tạo ở trên cùng, điều đó có nghĩa là thư mục '~/data' đã được gắn vào vùng chứa 'web'.
7. Tiếp theo, bạn có thể đăng nhập vào vùng chứa đang chạy bằng tùy chọn 'exec' và thực thi shell 'sh'.
Đảm bảo rằng container 'web' của bạn đang chạy bằng lệnh sau.
Bây giờ hãy thực hiện lệnh podman bên dưới để đăng nhập vào container 'web'.
Kiểm tra tên máy chủ của container 'web'.
Kiểm tra địa chỉ IP và bảng định tuyến của container 'web'.
Bây giờ hãy nhập 'exit' để đăng xuất khỏi container 'web'.
8. Bây giờ hãy dọn dẹp môi trường của bạn bằng lệnh sau.
Dừng container 'web' bằng lệnh podman bên dưới.
Xóa tất cả các container có trạng thái 'Thoát' bằng lệnh podman bên dưới.
Podman là công cụ container tuân thủ OCI (Open Container Initiative). Công cụ này tương thích với giao diện Docker CLI và cho phép bạn chạy container không cần root (chạy container mà không cần quyền root). Podman được phát hành như một phần của Red Hat Enterprise Linux, được thiết kế để trở thành thế hệ công cụ container Linux tiếp theo với khả năng thử nghiệm và phát triển các tính năng nhanh hơn.
Trong hướng dẫn này, bạn sẽ tìm hiểu cách cài đặt Podman trên hệ thống Ubuntu 20.04. Bạn sẽ cài đặt Podman và tìm hiểu cách sử dụng cơ bản của podman để quản lý các container, hình ảnh và ổ đĩa Docker.
Điều kiện tiên quyết
- Một máy chủ Ubuntu 20.04 - đảm bảo tất cả các gói đều là phiên bản mới nhất, để loại bỏ các phụ thuộc không dùng nữa và dẫn bạn đến lỗi trong quá trình cài đặt.
- Một người dùng có quyền root hoặc người dùng root - để cài đặt các gói mới và thay đổi cấu hình trên toàn hệ thống.
Cài đặt Podman trên Ubuntu 20.04
Đầu tiên, bạn sẽ thêm kho lưu trữ của bên thứ ba và khóa để cài đặt podman trên hệ thống Ubuntu 20.04.1. Thực hiện lệnh sau để xuất các biến môi trường trên tệp '/etc/os-release'.
Mã:
. /etc/os-release
Mã:
echo "deb https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/xUbuntu_${VERSION_ID}/ /" | sudo tee /etc/apt/sources.list.d/devel:kubic:libcontainers:stable.list
curl -L "https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/xUbuntu_${VERSION_ID}/Release.key" | sudo apt-key add -
Mã:
sudo apt update
sudo apt -y upgrade
4. Sau đó, cài đặt podman bằng lệnh apt bên dưới.
Mã:
sudo apt install podman
5. Sau khi cài đặt hoàn tất, hãy xác minh phiên bản podman bằng lệnh sau.
Mã:
phiên bản podman
Như có thể thấy, bạn đã cài đặt podman v3.3.1 được biên dịch bằng Go 1.16 cho kiến trúc Linux amd64 (64-bit).
Tạo người dùng mới và chạy container hello-world
Podman cho phép bạn chạy container dưới quyền người dùng mà không cần quyền root. Đối với giai đoạn này, bạn sẽ thêm một người dùng mới và chạy container 'hello-world' dựa trên hình ảnh Docker.1. Thực hiện lệnh sau để thêm người dùng mới 'johndoe'.
Mã:
useradd -m -s /bin/bash johndoe
passwd johndoe
2. Tiếp theo, đăng nhập với tư cách là người dùng 'johndoe' và chạy container dựa trên hình ảnh Docker 'hello-world'.
Đăng nhập với tư cách là người dùng 'johndoe'.
Mã:
su - johndoe
Mã:
podman run hello-world
3. Để xác minh container và hình ảnh của bạn trên máy cục bộ, hãy thực hiện lệnh bên dưới.
Mã:
podman ps -a
podman images
Cách sử dụng cơ bản của Podman
Với hướng dẫn này, bạn sẽ học cách sử dụng podman để quản lý container, hình ảnh và khối lượng. Bạn sẽ học lệnh cơ bản của podman để quản lý container và các lệnh bạn sẽ sử dụng cho hướng dẫn này giống 100% với lệnh Docker CLI.1. Để tìm hình ảnh container tương thích với podman, hãy thực hiện lệnh podman bên dưới.
Mã:
podman search nginx
Chọn hình ảnh container 'nginx' từ sổ đăng ký Docker và tải xuống máy cục bộ của bạn bằng lệnh podman bên dưới.
Mã:
podman pull nginx:alpine
2. Để kiểm tra hình ảnh container có sẵn trên máy cục bộ của bạn, hãy thực thi lệnh podman bên dưới.
Mã:
hình ảnh podman
3. Tiếp theo, để bắt đầu và chạy một container mới dựa trên hình ảnh 'nginx:alpine', hãy thực hiện lệnh podman với tùy chọn 'run' như bên dưới.
Mã:
podman run -it --rm -d -p 8080:80 --name web nginx:alpine
- -i hoặc --interactive - giữ cho STDIN của container mở ngay cả khi không được đính kèm.
- -t hoặc --tty - phân bổ một thiết bị đầu cuối giả kết nối thiết bị đầu cuối của bạn với STDIN và STDOUT của container.
- --rm - tự động xóa container khi container thoát hoặc dừng.
- -d - chạy container ở chế độ nền, hủy đính kèm container sau khi container running.
- -p 8080:80 - ánh xạ cổng giữa container và hệ thống máy chủ. Cổng '80' trên container được ánh xạ tới cổng hệ thống máy chủ '8080'.
- --name web - chỉ định tên container mới là 'web'.
- nginx:alpine - hình ảnh chúng tôi sử dụng là 'nginx:alpine'.
Mã:
podman ps
Trạng thái container là 'Đang hoạt động' và hiển thị cổng TCP '8080' trên máy chủ.
Mở trình duyệt web của bạn và truy cập địa chỉ IP máy chủ của bạn với cổng '8080' như bên dưới.
Và bạn sẽ thấy tuổi 'index.html' mặc định của container nginx của bạn.
4. Ngoài ra, bạn có thể kiểm tra nhật ký của container bằng tùy chọn 'logs' như bên dưới.
Mã:
podman logs web
Hoặc bạn có thể chỉ định số dòng cuối cùng của nhật ký container bằng tùy chọn '--tail' như bên dưới.
Mã:
podman logs --tail 10 web
5. Bây giờ bạn có thể dừng container đang chạy bằng tùy chọn podman 'stop' như bên dưới.
Mã:
podman stop web
Mã:
podman ps
podman ps -a
Bộ chứa 'web' bị dừng và tự động xóa vì bạn đang sử dụng tùy chọn '--rm' trên lệnh podman của mình.
6. Tiếp theo, bạn sẽ học cách sử dụng khối lượng tùy chỉnh để thay đổi 'index.html' mặc định trên vùng chứa mới.
Tạo thư mục mới '~/data' và tệp 'index.html' bằng lệnh sau.
Mã:
mkdir -p ~/data/
nano ~/data/index.html
Mã:
Welcome to Container Nginx
[HEADING=2]Hello from Nginx container - Managed with Podman[/HEADING]
Bây giờ hãy thực hiện lệnh podman sau để chạy vùng chứa mới với ổ đĩa tùy chỉnh.
Mã:
podman run -it --rm -d -p 8080:80 --name web -v ~/data:/usr/share/nginx/html nginx:alpine
- -v - chỉ định ổ đĩa cho vùng chứa của bạn. Thư mục '~/data' sẽ được gắn vào thư mục chứa mới '/usr/share/nginx/html'.
Mã:
podman ps
Tiếp theo, hãy mở trình duyệt web và nhập địa chỉ IP máy chủ của bạn với cổng '8080'.
Và bạn sẽ thấy trang index.html tùy chỉnh mà bạn đã tạo ở trên cùng, điều đó có nghĩa là thư mục '~/data' đã được gắn vào vùng chứa 'web'.
7. Tiếp theo, bạn có thể đăng nhập vào vùng chứa đang chạy bằng tùy chọn 'exec' và thực thi shell 'sh'.
Đảm bảo rằng container 'web' của bạn đang chạy bằng lệnh sau.
Mã:
podman ps
Mã:
podman exec -it web /bin/sh
Mã:
hostname
Mã:
ip a
route -n
8. Bây giờ hãy dọn dẹp môi trường của bạn bằng lệnh sau.
Dừng container 'web' bằng lệnh podman bên dưới.
Mã:
podman stop web
Mã:
podman rm $(podman ps --filter "status=exited" -q)