我在 CentOS Stream 9 上以非 root 用户“apideployer”使用 Podman 版本 4.8.1。我在尝试使用“systemctl --user daemon-reload”加载 systemd 用户服务时遇到错误,收到“无法连接到总线:未找到介质”。这似乎与我的 SSH 会话中的 D-Bus 访问有关。
我尝试过渡到 Quadlet 文件以实现更好的容器管理,但我遇到了 systemd 集成问题。我期望 systemd 从 Quadlet 文件生成 .service 文件,但这并没有发生。我已将 .container 文件放置在 $HOME/.config/containers/systemd/
我一直在评论:
这是我用于测试目的的 Quadlet 文件之一。 oracle-db.container:
[Unit]
Description=Oracle Database Container
After=network.target
[Container]
Name=oracle-db
Image=container-registry.oracle.com/database/express:latest
Environment=ORACLE_PWD=mysecurepassword
Ports=1521:1521
Volume= oracle-db.volume:/opt/oracle/oradata
Network=oracle-db.network
IP=192.168.100.10
[Service]
# Restart service when sleep finishes
Restart=always
# Extend Timeout to allow time to pull the image
TimeoutStartSec=900
[Install]
# Start by default on boot
WantedBy=multi-user.target default.target
我期望 systemd 从 Quadlet 文件生成 .service 文件,但这并没有发生。
请注意,生成器仅在启动时和运行后运行
systemctl daemon-reload
。您将在/run/systemd/generator
中找到生成的单元文件。它们将在启动时自动运行,或者您可以明确 systemctl start
生成的服务。
如果看起来单元文件没有生成,您可以手动运行生成器:
mkdir /tmp/units
/usr/lib/systemd/system-generators/podman-system-generator -v -no-kmsg-log /tmp/units
这将输出一些有关生成过程的信息。例如,在我的系统上,上面的结果是:
quadlet-generator[270888]: Starting quadlet-generator, output to: /tmp/units
quadlet-generator[270888]: Loading source unit file /etc/containers/systemd/devpi.container
quadlet-generator[270888]: Loading source unit file /etc/containers/systemd/devpi.volume
quadlet-generator[270888]: Loading source unit file /etc/containers/systemd/services.network
quadlet-generator[270888]: Loading source unit file /etc/containers/systemd/traefik.container
quadlet-generator[270888]: Loading source unit file /etc/containers/systemd/whoami.container
quadlet-generator[270888]: writing "/tmp/units/devpi-volume.service"
quadlet-generator[270888]: writing "/tmp/units/services-network.service"
quadlet-generator[270888]: writing "/tmp/units/devpi.service"
quadlet-generator[270888]: Creating symlink /tmp/units/default.target.wants/devpi.service -> ../devpi.service
quadlet-generator[270888]: writing "/tmp/units/traefik.service"
quadlet-generator[270888]: Creating symlink /tmp/units/default.target.wants/traefik.service -> ../traefik.service
quadlet-generator[270888]: writing "/tmp/units/whoami.service"
quadlet-generator[270888]: Creating symlink /tmp/units/default.target.wants/whoami.service -> ../whoami.service
这应该让您知道您的四元组文件中是否有任何错误。