Red Hat系(包括fedora)上开始使用了podman来替代docker,在默认配置下启动podman service时显示Active: inactive
Podman这一点不同于docker,它是一个无守护进程的服务,所以它没有与之相关联的服务。即使systemctl显示podman仍然处于inactive
状态,我们也可以启动和运行容器。
不过我们仍然可以通过以下步骤来启动次功能:
- 复制 podman systemd file
cp /usr/lib/systemd/system/podman.service /etc/systemd/system/
- 修改以下文件,让服务以侦听端口8080并将时间参数设置为
0
,表示服务无限期运行直到停止。
# cat /etc/systemd/system/podman.service
[Unit]
Description=Podman API Service
Requires=podman.socket
After=podman.socket
Documentation=man:podman-system-service(1)
StartLimitIntervalSec=0
[Service]
Type=exec
KillMode=process
Environment=LOGGING="--log-level=info"
ExecStart=/usr/bin/podman $LOGGING system service tcp:127.0.0.1:8080 --time=0
这里需要注意的是可以在此处使用"tcp:0.0.0.0:8080"作为API在端口8080上用作tcp链接。如果不使用它,rootful服务的默认的端点是unix:/run/podman/podman.sock
。最后一行,如果需要API只在本地主机上工作,请将tcp:0.0.0.0:8080
替换为tcp:127.0.0.1:8080
。
- 重启podman服务
systemctl daemon-reload
systemctl enable podman.socket podman
systemctl start podman.socket podman
- 现在podman服务显示运行并可以通过其API端点访问。
# systemctl status podman.service
● podman.service - Podman API Service
Loaded: loaded (/etc/systemd/system/podman.service; enabled; vendor preset: disabled)
Active: active (running) since Thu 2022-12-01 09:05:44 CST; 5h 51min ago
TriggeredBy: ● podman.socket
Docs: man:podman-system-service(1)
Main PID: 747 (podman)
Tasks: 8 (limit: 8816)
Memory: 63.4M
CPU: 57.180s
CGroup: /system.slice/podman.service
└─747 /usr/bin/podman --log-level=info system service tcp:127.0.0.1:8080 --time=0