Computer >> Máy Tính >  >> Hệ thống >> Linux

Hướng dẫn cho người mới bắt đầu về Podman Containers trên Linux

Hướng dẫn cho người mới bắt đầu về Podman Containers trên Linux

Khi nói về Tương lai của Công nghệ, nhiều nhà công nghệ dày dạn kinh nghiệm đều biết rằng ảo hóa và container hóa chính là con đường đó. Chúng cho phép ứng dụng và dịch vụ bảo mật cao hơn, đồng thời dễ dàng quản lý chúng thông qua các dịch vụ khác cho phép chụp nhanh, tạo mẫu và khả năng tùy chỉnh cao hơn những gì bạn nhận được với mô hình một máy chủ cho mỗi ứng dụng. Tuy nhiên, không phải lúc nào cũng hoàn toàn rõ ràng cách bạn nên bắt đầu với ảo hóa và chứa. Chúng tôi đã đề cập đến ảo hóa trên Linux, Windows và macOS nhiều lần trước đây, nhưng quá trình container hóa có xu hướng hơi khác. Trong bài viết này, chúng tôi cung cấp cho bạn hướng dẫn dành cho người mới bắt đầu về Podman trên Linux, một công cụ tuyệt vời để chứa.

Vùng chứa là gì?

Các vùng chứa về cơ bản là một máy ảo nhỏ - nhưng chỉ dành cho các ứng dụng. Chúng sử dụng nhiều khái niệm giống nhau và mang nhiều tính năng bảo mật và dễ sử dụng giống nhau, nhưng chúng nhỏ hơn nhiều và cho phép dễ dàng chụp ảnh và phân phối ứng dụng. Đây là phần lớn những gì Flatpaks và Snaps dựa trên. Bạn có thể bắt đầu thấy các điểm tương đồng:một chương trình, nhiều ứng dụng chạy trong môi trường biệt lập.

Podman là gì?

Nhiều người trong chúng ta đã nghe nói về Docker, OG của động cơ container. Podman là một công cụ chứa tương tự sử dụng cấu trúc rất giống với Docker với một vài điểm khác biệt chính.

Một là Podman không có daemon, trong khi Docker dựa vào daemon. Điều này có nghĩa là vùng chứa Podman có thể hoạt động mà không cần quyền cấp gốc, cho phép bảo mật và linh hoạt hơn. Vùng chứa đang chạy ở cấp người dùng có nghĩa là người dùng chỉ có thể thấy vùng chứa của họ chứ không ai khác. Podman nhẹ hơn về tài nguyên hệ thống do kiến ​​trúc đơn giản hơn, mang lại trải nghiệm thú vị hơn.

Kiến trúc không có daemon dẫn đến một thứ gọi là vùng chứa không có gốc. Đó là một khái niệm được xây dựng dựa trên sự khác biệt trước đó nhưng tập trung vào bảo mật. Nếu kẻ tấn công xâm phạm vùng chứa của bạn và cố gắng trốn thoát vì bất kỳ lý do gì, chúng chỉ có quyền cơ bản của người dùng chứ không phải quyền root. Điều này đòi hỏi một số thiết lập bổ sung để bắt đầu và có một số thiếu sót tại thời điểm này, nhưng đó là điều đáng xem xét.

Cài đặt Podman

Đối với hầu hết các bản phân phối, Podman nằm trong kho lưu trữ chính, làm cho nó trở thành một lệnh cài đặt đơn giản:

# Debian/Ubuntu
sudo apt install podman
 
# Fedora/CentOS/Redhat
sudo dnf install podman
 
# Arch Linux
sudo pacman -S podman
 
# OpenSUSE
sudo zypper install podman
 
# Gentoo
sudo emerge app-emulation/podman

Sử dụng Podman

Cú pháp lệnh để bắt đầu vùng chứa Podman có thể hơi khó hiểu, nhưng khi bạn bắt đầu hiểu nó, bạn sẽ bắt đầu nhận ra các mẫu. Có một vùng chứa mẫu từ dự án mà bạn có thể chạy bằng cách nhập lệnh này vào thiết bị đầu cuối:

podman run -dt -p 8080:8080/tcp -e HTTPD_VAR_RUN=/run/httpd -e HTTPD_MAIN_CONF_D_PATH=/etc/httpd/conf.d \
-e HTTPD_MAIN_CONF_PATH=/etc/httpd/conf \
-e HTTPD_CONTAINER_SCRIPTS_PATH=/usr/share/container-scripts/httpd/ \
registry.fedoraproject.org/f29/httpd /usr/bin/run-httpd
Hướng dẫn cho người mới bắt đầu về Podman Containers trên Linux

Thao tác đó sẽ lấy một số hình ảnh từ sổ đăng ký được liệt kê và sau khi hoàn tất, bạn sẽ nhận được một số dài. Bạn sẽ thấy điều đó sau này khi kiểm tra các vùng chứa đang chạy.

Để kiểm tra các vùng chứa Podman đang chạy, hãy nhập lệnh sau:

podman ps
Hướng dẫn cho người mới bắt đầu về Podman Containers trên Linux

Bạn sẽ thấy vùng chứa mà bạn đã bắt đầu trước đó. Điều này xác nhận rằng nó đang chạy. Tuy nhiên, nếu bạn muốn xem cụ thể trang web mà Apache đang chạy, bạn sẽ chạy lệnh sau:

curl https://0.0.0.0:8080

Thay thế 0.0.0.0 với bất kỳ địa chỉ IP nào được hiển thị khi bạn chạy podman ps yêu cầu. Bạn sẽ nhận được một loạt HTML bị cắt xén, nhưng nếu bạn nhìn ngay ở phần trên cùng, bạn sẽ nhận thấy cú pháp của tiêu đề trong HTML và sẽ biết nó đang hoạt động.

<title>Test Page for the Apache HTTP Server on Fedora</title>

Hình ảnh Podman

Điều hay ho ở Podman là sử dụng hình ảnh. Bạn có thể tìm kiếm các hình ảnh khác như httpd hoặc các chương trình khác mà bạn muốn chạy.

podman search CONTAINERNAME

Tôi đã tìm kiếm vncserver , Và đây là những gì tôi nhận được. Bạn có thể thấy rằng có nhiều lựa chọn và nó sẽ chỉ phụ thuộc vào sở thích cá nhân của bạn.

Hướng dẫn cho người mới bắt đầu về Podman Containers trên Linux

Để lấy một trong những hình ảnh đó, hãy chạy podman pull lệnh.

podman pull CONTAINERNAME

Bạn nên kéo toàn bộ url để đăng ký vùng chứa hoàn toàn chính xác. Ví dụ:lệnh tôi đang chạy là:

podman pull docker.io/michaelaboeckler/vncserver

thay vì chỉ chạy podman pull vncserver bởi vì có thể có những hình ảnh tôi không muốn sẽ được chọn thay vì hình ảnh mà tôi muốn.

Hướng dẫn cho người mới bắt đầu về Podman Containers trên Linux

Bạn cũng có thể kiểm tra hình ảnh của mình bằng lệnh này:

podman images

Và dừng các vùng chứa bằng lệnh này:

podman stop -l

-l cờ có nghĩa là nó sẽ dừng vùng chứa chạy mới nhất, nhưng bạn cũng có thể sử dụng -a gắn cờ để dừng tất cả các vùng chứa.

Bạn có thể nhận thấy rằng Podman cũng có thể xem docker.io để tìm hình ảnh vùng chứa. Đó là bởi vì các lệnh Podman và các lệnh Docker về cơ bản giống nhau - đến mức đôi khi chúng ta nên đặt bí danh là docker lệnh tới podman như thế này:

alias docker='podman'

Điều này có nghĩa là bất kỳ lúc nào bạn nhập docker , máy của bạn sẽ chạy podman vẫn ra lệnh.

Rootless Podman

Để thiết lập hệ thống của bạn cho vùng chứa không cần root, cần thực hiện khá nhiều thiết lập nhưng có tài liệu tuyệt vời trên trang Github của họ.

Tôi hy vọng bạn thích phần sơ khai này trên Podman, một công cụ nhỏ tuyệt vời cho phép bạn chạy các vùng chứa không cần daemon, không cần root để giữ cho hệ thống của bạn gọn gàng, ngăn nắp và an toàn. Nếu bạn đã làm vậy, hãy nhớ xem một số nội dung vùng chứa khác của chúng tôi, chẳng hạn như hướng dẫn của chúng tôi về cách chạy Ubuntu trong vùng chứa trong ChromeOS, sao chép vùng chứa Docker sang máy chủ khác và giới hạn tài nguyên Vùng chứa Docker.