mirror of
https://github.com/containers/podman
synced 2024-10-20 17:23:30 +00:00
89678ab0ed
* Add ReadMe, CLI and unit files to support socket activation, both for system and rootless Signed-off-by: Jhon Honce <jhonce@redhat.com>
2.5 KiB
2.5 KiB
Setting up Podman service for systemd socket activation
system-wide (podman service run as root)
The following unit file examples assume:
- copied the
service
executable into/usr/local/bin
chcon system_u:object_r:container_runtime_exec_t:s0 /usr/local/bin/service
then:
- copy the
podman.service
andpodman.socket
files into/etc/systemd/system
systemctl daemon-reload
systemctl enable podman.socket
systemctl start podman.socket
systemctl status podman.socket podman.service
Assuming the status messages show no errors, the libpod service is ready to respond to the APIv2 on the unix domain socket /run/podman/podman.sock
podman.service
[Unit]
Description=Podman API Service
Requires=podman.socket
After=podman.socket
Documentation=man:podman-api(1)
StartLimitIntervalSec=0
[Service]
Type=oneshot
Environment=REGISTRIES_CONFIG_PATH=/etc/containers/registries.conf
ExecStart=/usr/local/bin/service
TimeoutStopSec=30
KillMode=process
[Install]
WantedBy=multi-user.target
Also=podman.socket
podman.socket
[Unit]
Description=Podman API Socket
Documentation=man:podman-api(1)
[Socket]
ListenStream=%t/podman/podman.sock
SocketMode=0660
[Install]
WantedBy=sockets.target
user (podman service run as given user aka "rootless")
The following unit file examples assume:
- you have a created a directory
~/bin
- copied the
service
executable into~/bin
chcon system_u:object_r:container_runtime_exec_t:s0 ~/bin/service
then:
mkdir -p ~/.config/systemd/user
- copy the
podman.service
andpodman.socket
files into~/.config/systemd/user
systemctl --user enable podman.socket
systemctl --user start podman.socket
systemctl --user status podman.socket podman.service
Assuming the status messages show no errors, the libpod service is ready to respond to the APIv2 on the unix domain socket /run/user/$(id -u)/podman/podman.sock
podman.service
[Unit]
Description=Podman API Service
Requires=podman.socket
After=podman.socket
Documentation=man:podman-api(1)
StartLimitIntervalSec=0
[Service]
Type=oneshot
Environment=REGISTRIES_CONFIG_PATH=/etc/containers/registries.conf
ExecStart=%h/bin/service
TimeoutStopSec=30
KillMode=process
[Install]
WantedBy=multi-user.target
Also=podman.socket
podman.socket
[Unit]
Description=Podman API Socket
Documentation=man:podman-api(1)
[Socket]
ListenStream=%t/podman/podman.sock
SocketMode=0660
[Install]
WantedBy=sockets.target