iT邦幫忙

2026 iThome 鐵人賽

DAY 4
0

在其他的鐵人賽文章裡也有劇透這一段,但為了劇情連貫,還是做一下前情提要。
在上一章拿到.tar.gz檔後,先在公司的開發環境離線安裝podman,成功了再帶到客戶端RedHat環境安裝。以下是當時在RedHat 9.7下安裝podman 5.6.0的劇本。

  1. 安裝podman
  • 在本機上傳到開發環境RedHat:scp ./podman-rpms.tar.gz root@RedHat-IP:.。預設會存在/root路徑下。
  • 以root帳號登入RedHat:ssh root@RedHAT-IP,在/root目錄下對podman-rpms.tar.gz做解壓縮
gunzip podman-rpms.tar.gz
tar xvf podman-rpms.tar
  • 執行安裝:解壓縮後會產出podman-rpm子目錄,進入子目錄安裝
cd podman-rpms
dnf install -y *.rpm

若網路功能有問題,可試用以下指令安裝:

dnf localinstall -y *.rpm --disablerepo="*" --nogpgcheck

安裝完畢,可以執行podman -v顯示版本號。

  1. 建立appuser + 開啟linger (只做一次)
  • 建立rootless帳號,若是第一次建,uid通常是1001,參考第二天的發文。
# 1) 建使用者
sudo useradd -m -s /bin/bash appuser

# 2) 允許「使用者的 systemd --user」在無登入狀態仍可啟動(關鍵)
sudo loginctl enable-linger appuser

# 3) 確認
loginctl show-user appuser -p Linger
# Linger=yes
  1. 建立network服務
    之後會是以appuser登入做操作,改以appuser登入RedHat:ssh appuser@RedHat-IP
    手動建立podman quadlet所需子目錄:
mkdir -p .config/containers/systemd

編輯a2a-net.network檔並存檔:vi .config/containers/systemd/a2a-net.network,這裡假設讀者會用vi,若是FTP傳檔亦可。

[Network]
# 內部隔離網路
# 用途:Backend APIs 之間的內部通訊
NetworkName=a2a-net

然後啟動網路服務,這時操作systemctl務必加--user參數,定調為rootless運作。

$ systemctl --user daemon-reload
$ systemctl --user start a2a-net-network
$ systemctl --user status a2a-net-network
● a2a-net-network.service
     Loaded: loaded (/home/appuser/.config/containers/systemd/a2a-net.network; generated)
     Active: active (exited) since Tue 2026-08-11 10:33:01 CST; 22s ago
    Process: 3915706 ExecStart=/usr/bin/podman network create --ignore a2a-net (code=exited, status=0/SUCCESS)
   Main PID: 3915706 (code=exited, status=0/SUCCESS)
        CPU: 38ms

.network檔是個特例,經過daemon-reload後,服務名會是a2a-net-network.service,會把副檔名變成服務名稱尾綴。若是.container檔,a2a-web.container的服務名稱是a2a-web.service,在用systemctl --user操作時,.service可以省略。
另外,也可以用podman來查運作狀態:

$ podman quadlet list
NAME                 UNIT NAME                PATH ON DISK                                                  STATUS          APPLICATION
aia-net.network      aia-net-network.service  /home/appuser/.config/containers/systemd/aia-net.network      active/exited 

看到STATUS為active/exited表示成功,若是容器運作中的則STATUS會是active/running,這部份下回分解。


上一篇
下載podman離線安裝包
下一篇
建個前端容器感受一下Podman Quadlet
系列文
Podman Quadlet-容器服務化(在單體系統到微服務之間)11
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言