podman service in inactive state

Red Hat系(包括fedora)上开始使用了podman来替代docker,在默认配置下启动podman service时显示Active: inactive

Podman这一点不同于docker,它是一个无守护进程的服务,所以它没有与之相关联的服务。即使systemctl显示podman仍然处于inactive状态,我们也可以启动和运行容器。

不过我们仍然可以通过以下步骤来启动次功能:

  1. 复制 podman systemd file
    cp /usr/lib/systemd/system/podman.service /etc/systemd/system/
  2. 修改以下文件,让服务以侦听端口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

  1. 重启podman服务
systemctl daemon-reload
systemctl enable podman.socket podman
systemctl start podman.socket podman
  1. 现在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
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容