Podman: Difference between revisions
WhyNotHugo (talk | contribs) (docker compose) |
(Shared mount) |
||
Line 32: | Line 32: | ||
{{Cmd|$ podman run --rm hello-world}} | {{Cmd|$ podman run --rm hello-world}} | ||
==== Shared mount ==== | |||
Containers on linux might require filesystems to be mounted with different propagation than the kernel default of 'private'. If you see a warning: | |||
: WARN[0000] "/" is not a shared mount, this could cause issues or missing mounts with rootless containers | |||
you might want to fix this temporarily, for currently running system: | |||
{{Cmd|doas mount --make-rshared /}} | |||
and try the command that caused the warning again. | |||
Alternatively, you could use following command: | |||
{{Cmd|doas findmnt -o PROPAGATION /}} | |||
which should print: | |||
PROPAGATION | |||
shared | |||
For a permanent fix (after a [https://github.com/OpenRC/openrc/pull/526 OpenRC PR#526] is released - in newer version than 0.54.2-r1), edit {{path|/etc/fstab}}: | |||
{{cmd|doas $EDITOR /etc/fstab}} | |||
Add <code>shared</code> option to the root partition: | |||
/dev/sda2 / ext4 rw,relatime,shared 0 1 | |||
and after a reboot test it out similarly as above. | |||
=== Docker compose === | === Docker compose === |
Revision as of 09:31, 8 August 2024
Installation
Podman can be installed via podman package in the community repository.
# apk add podman
Running as root
To run podman you'll need to enable the cgroups
service, consider enabling cgroups v2.
# rc-update add cgroups
# rc-service cgroups start
You might need to restart your machine for this to work properly.
If you are running on top of Btrfs, consider setting storage driver to btrfs
:
$ cat /etc/containers/storage.conf
driver = "btrfs"
Running in rootless mode
For rootless support (replace <USER> with your username):
# modprobe tun # echo tun >>/etc/modules # echo <USER>:100000:65536 >/etc/subuid # echo <USER>:100000:65536 >/etc/subgid
Run an example container to verify everything works:
$ podman run --rm hello-world
Containers on linux might require filesystems to be mounted with different propagation than the kernel default of 'private'. If you see a warning:
- WARN[0000] "/" is not a shared mount, this could cause issues or missing mounts with rootless containers
you might want to fix this temporarily, for currently running system:
doas mount --make-rshared /
and try the command that caused the warning again.
Alternatively, you could use following command:
doas findmnt -o PROPAGATION /
which should print:
PROPAGATION shared
For a permanent fix (after a OpenRC PR#526 is released - in newer version than 0.54.2-r1), edit /etc/fstab:
doas $EDITOR /etc/fstab
Add shared
option to the root partition:
/dev/sda2 / ext4 rw,relatime,shared 0 1
and after a reboot test it out similarly as above.
Docker compose
Podman provides a drop-in replacement for docker compose. The podman-compose package provides this.
Each time that docker compose is used, a warning will remind that this is using podman under the hood. This warning can be squelched permanently by running:
touch /etc/containers/nodocker