Cách cài đặt và sử dụng Podman (Docker Alternative) trên Ubuntu 20.04

theanh

Administrator
Nhân viên
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.

Đ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
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.
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 -
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.
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
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.
Mã:
phiên bản podman
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).

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
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'.
Mã:
su - johndoe
Chạy container mới dựa trên hình ảnh Docker 'hello-world' bằng lệnh podman.
Mã:
podman run hello-world
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.
Mã:
podman ps -a
podman images
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'.


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
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.
Mã:
podman pull nginx:alpine
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.
Mã:
hình ảnh podman
Và bạn sẽ thấy hai hình ảnh - hình ảnh hello-worldnginx.



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
Một số tùy chọn bạn phải biết:
  • -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'.
Bạn sẽ thấy chuỗi ngẫu nhiên và số của container đang chạy của mình. Xác minh container đang chạy của bạn bằng lệnh podman bên dưới.
Mã:
podman ps
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.
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
'Web' của container sẽ dừng. Kiểm tra bằng lệnh bên dưới.
Mã:
podman ps
podman ps -a
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.
Mã:
mkdir -p ~/data/
nano ~/data/index.html
Sao chép và dán tập lệnh HTML bên dưới.
Mã:
 Welcome to Container Nginx


 [HEADING=2]Hello from Nginx container - Managed with Podman[/HEADING]
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ã:
podman run -it --rm -d -p 8080:80 --name web -v ~/data:/usr/share/nginx/html nginx:alpine
Một tùy chọn bạn phải biết:
  • -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'.
Bây giờ hãy thực hiện lệnh sau để xác minh vùng chứa đang chạy.
Mã:
podman ps
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.
Mã:
podman ps
Bây giờ hãy thực hiện lệnh podman bên dưới để đăng nhập vào container 'web'.
Mã:
podman exec -it web /bin/sh
Kiểm tra tên máy chủ của container 'web'.
Mã:
hostname
Kiểm tra địa chỉ IP và bảng định tuyến của container 'web'.
Mã:
ip a
route -n
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.
Mã:
podman stop web
Xóa tất cả các container có trạng thái 'Thoát' bằng lệnh podman bên dưới.
Mã:
podman rm $(podman ps --filter "status=exited" -q)

Kết luận​

Xin chúc mừng! Bạn đã cài đặt thành công Podman trên hệ thống Ubuntu 20.04. Ngoài ra, bạn đã học được cách sử dụng cơ bản của podman để tải xuống hình ảnh container, chạy container, kiểm tra trạng thái container, nhật ký và cách sử dụng cơ bản của podman để quản lý khối lượng. Đối với bước tiếp theo, bạn có thể thử tạo hình ảnh tùy chỉnh của mình với các thông số kỹ thuật OCI để đẩy/tải ứng dụng của bạn lên sổ đăng ký container.
 
Back
Bên trên