podman-pod.unit(5) File Formats Manual podman-pod.unit(5) (NAME) podman-pod.unit - systemd Quadlet (SYNOPSIS) name.pod (DESCRIPTION) (Pod) .pod [Pod] . ExecStartPre=podman pod create . systemd- $name.pod $name-pod.service systemd-$name . PodName . (OPTIONS) [Pod] : +-----------------------------------+----------------------------------------------------------------------+ | [Pod] | podman pod create | +-----------------------------------+----------------------------------------------------------------------+ |AddHost=example.com:192.168.10.11 | --add-host example.com:192.168.10.11 | +-----------------------------------+----------------------------------------------------------------------+ |ContainersConfModule=/etc/nvd.conf | --module=/etc/nvd.conf | +-----------------------------------+----------------------------------------------------------------------+ |DNS=192.168.55.1 | --dns=192.168.55.1 | +-----------------------------------+----------------------------------------------------------------------+ |DNSOption=ndots:1 | --dns-option=ndots:1 | +-----------------------------------+----------------------------------------------------------------------+ |DNSSearch=example.com | --dns-search example.com | +-----------------------------------+----------------------------------------------------------------------+ |ExitPolicy=stop | --exit-policy stop | +-----------------------------------+----------------------------------------------------------------------+ |GIDMap=0:10000:10 | --gidmap=0:10000:10 | +-----------------------------------+----------------------------------------------------------------------+ |GlobalArgs=--log-level=debug | --log-level=debug | +-----------------------------------+----------------------------------------------------------------------+ |HostName=name | --hostname=name | +-----------------------------------+----------------------------------------------------------------------+ |IP=192.5.0.1 | --ip 192.5.0.1 | +-----------------------------------+----------------------------------------------------------------------+ |IP6=2001:db8::1 | --ip6 2001:db8::1 | +-----------------------------------+----------------------------------------------------------------------+ |Label="XYZ" | --label "XYZ" | +-----------------------------------+----------------------------------------------------------------------+ |Network=host | --network host | +-----------------------------------+----------------------------------------------------------------------+ |NetworkAlias=name | --network-alias name | +-----------------------------------+----------------------------------------------------------------------+ |PodmanArgs=--cpus=2 | --cpus=2 | +-----------------------------------+----------------------------------------------------------------------+ |PodName=name | --name=name | +-----------------------------------+----------------------------------------------------------------------+ |PublishPort=8080:80 | --publish 8080:80 | +-----------------------------------+----------------------------------------------------------------------+ |ServiceName=name | systemd name.service | +-----------------------------------+----------------------------------------------------------------------+ |ShmSize=100m | --shm-size=100m | +-----------------------------------+----------------------------------------------------------------------+ |SubGIDMap=gtest | --subgidname=gtest | +-----------------------------------+----------------------------------------------------------------------+ |SubUIDMap=utest | --subuidname=utest | +-----------------------------------+----------------------------------------------------------------------+ |UIDMap=0:10000:10 | --uidmap=0:10000:10 | +-----------------------------------+----------------------------------------------------------------------+ |UserNS=keep-id:uid=200,gid=210 | --userns keep-id:uid=200,gid=210 | +-----------------------------------+----------------------------------------------------------------------+ |Volume=/source:/dest | --volume /source:/dest | +-----------------------------------+----------------------------------------------------------------------+ [Pod] : AddHost=hostname[;hostname[;...]]:ip IP /etc/hosts . (semicolon) IPv4 IPv6 . IP /etc/hosts ( --name --hostname ). /etc/hosts . --no-hosts no_hosts=true containers.conf . IP host-gateway . IP . IP host-gateway . IP host_containers_internal_ip containers.conf . host-gateway host.containers.internal host.docker.internal /etc/hosts . --no-hosts host_containers_internal_ip="none" containers.conf . host-gateway IP /etc/hosts . podman machine ( ) /etc/hosts IP DNS gvproxy . /etc/hosts /etc/hosts . base_hosts_file containers.conf . ContainersConfModule=module containers.conf(5) . . DNS=ipaddr DNS . DNS . DNS ( 127.0.0.1). DNS= . none /etc/resolv.conf . /etc/resolv.conf . ipaddr /etc/resolv.conf . . dns_enabled true --network /etc/resolv.conf aardvark-dns . aardvark-dns ipaddr . DNSOption=option DNS. DNSOption= Network= none container:id . DNSSearch=domain DNS. DNSSearch= Network= none container:id . DNSSearch=. . ExitPolicy=stop . quadlet stop . ExitPolicy=continue . GIDMap=[flags]container_gid:from_gid[:amount] GID . UserNS= SubGIDMap= . GID GID --uidmap UID UID . --uidmap . : GIDMap= Pod= gidmap . GlobalArgs= podman . . . . . HostName=name . UTS --uts=private () . Pod= UTS () . IP /etc/hosts ( AddHost= ). HostName= UTS () (Container ID) . ContainerName= container_name_as_hostname=true containers.conf . DNS ( ) --hostname DNS . . podman-network(1) . IP=IPv4 IPv4 10.88.64.128. -- Network=network-name -- Network=container:id . IP ( 10.88.0.0/16). IP Network= ip IP . IP6=IPv6 IPv6 fd46:db93:aa76:ac37::10. -- Network=network-name -- Network=container:id . IPv6 . IPv6 Network= ip6 IPv6 . Label=key=value [key=value ...] . Network=mode . : o (name) .network systemd-$name systemd $name-network.service . Quadlet $name.network . : .network . o name .container $name.container . systemd $name.service . : .container . mode : o bridge[:OPTIONS,...]: . (rootful) . : o alias=name: . o ip=IPv4: IPv4 . o ip6=IPv6: IPv6 . o mac=MAC: MAC . o interface_name=name: . o host_interface_name=name: . netavark . netavark . (rootless) rootlessport . rootless_port_forwarder="pasta" [network] containers.conf(5) pasta ( pesto) IP . . IPv4 --network bridge:ip=10.88.0.10,mac=44:33:22:11:00:99 . o [:OPTIONS,...]: podman network create . bridge . --network . --network bridge . o none: . o container:id: . o host: . : TCP/UDP localhost . . o ns:path: . o private: . bridge pasta . o pasta[:OPTIONS,...]: pasta(1) (user-mode). . IPv4 IPv6 . IP . pasta(1) . pasta(1) --config-net --no- map-gw . --map-gw pasta ( pasta(1) ). DNS --dns-forward 169.254.1.1 resolv.conf(5) . IP --dns-forward . host.containers.internal /etc/hosts --map-guest-addr 169.254.1.2 . IP . TCP UDP ( --publish -t/-u pasta) -t none -u none . -T none -U none . containers.conf(5) pasta_options . : o pasta:--map-gw: . o pasta:--mtu,1500: MTU tap . o pasta:--ipv4-only,-a,10.0.2.0,-n,24,-g,10.0.2.2,--dns- forward,10.0.2.3,-m,1500,--no-ndp,--no-dhcpv6,--no-dhcp: IPv6 10.0.2.0/24 tap0 10.0.2.3 DNS 10.0.2.3 MTU NDP DHCPv6 DHCP. o pasta:-I,tap0,--ipv4-only,-a,10.0.2.0,-n,24,-g,10.0.2.2,--dns- forward,10.0.2.3,--no-ndp,--no-dhcpv6,--no-dhcp: MTU . o pasta:-t,auto,-u,auto,-T,auto,-U,auto: . o pasta:-T,5201: TCP loopback tap . NetworkAlias=alias . alias --network . DNS (podman network inspect -f {{.DNSEnabled}} ) . . PodmanArgs= podman . . . . . PodName=name () . systemd- $name.pod systemd-$name . . PodName . PublishPort=[[hostIP:][hostPort]:]containerPort[/protocol] . hostPort containerPort . . hostIP 0.0.0.0 IPv4 [::] IPv6 . IP . hostIP IP v4 v6 ( ) . hostIP containers.conf(5) default_host_ips [network] . IP . default_host_ips = ["127.0.0.1", "::1"] localhost ipv4 ipv6 . hostIP . TCP . UDP udp . TCP UDP --publish tcp udp . sctp . ( podman run -p 127.0.0.1::80). . podman port : podman port $CONTAINER $CONTAINERPORT. bridge pasta . rootlessport IP . rootless_port_forwarder="pasta" [network] containers.conf(5) pasta pesto IP . . ServiceName=name Quadlet -pod Quadlet systemd . Quadlet . .service . ShmSize=number[unit] /dev/shm. unit b () k () m () g () . . 64m . size 0 IPC . --ipc=host . SubGIDMap=name name /etc/subgid. . subgid(5) . UserNS= GIDMap= . GIDMap= GIDMap= name /etc/subgid . SubUIDMap=name name /etc/subuid. . subuid(5) . UserNS= UIDMap= . UIDMap= UIDMap= name /etc/subuid . UIDMap=container_uid:from_uid[:amount] . UserNS= SubUIDMap= . UID UID . . UserNS=mode . PODMAN_USERNS . ("") . UserNS=Key: +-------------+------------------------------------+---------------------------------------+ | | | | +-------------+------------------------------------+---------------------------------------+ |"" | $UID | 0 ( | | | | | | | | root | | | | | | | | .) | +-------------+------------------------------------+---------------------------------------+ |host | $UID | 0 ( | | | | | | | | root | | | | | | | | .) | +-------------+------------------------------------+---------------------------------------+ |keep-id | $UID | $UID ( | | | | | | | | UID | | | | .) | +-------------+------------------------------------+---------------------------------------+ |auto | $UID | nil ( UID | | | | | | | | | | | | | | | | .) | +-------------+------------------------------------+---------------------------------------+ |nomap | $UID | nil ( UID | | | | | | | | | | | | | | | | .) | +-------------+------------------------------------+---------------------------------------+ mode : o auto[:OPTIONS,...]: . auto : o gidmapping=CONTAINER_GID:HOST_GID:SIZE: GID . o size=SIZE: . UserNS=auto:size=8192. size auto . o uidmapping=CONTAINER_UID:HOST_UID:SIZE: UID . o host: . (). o keep-id: UID:GID . root . o nomap: UID:GID . root . Volume=[[SOURCE-VOLUME|HOST-DIR:]CONTAINER-DIR[:OPTIONS]] (bind mount). -v /HOST-DIR:/CONTAINER-DIR /HOST-DIR /CONTAINER-DIR (bind mount) . -v SOURCE-VOLUME:/CONTAINER-DIR . . nocreate . --rm podman rm --volumes . : o SOURCE-VOLUME .volume systemd-$name systemd $name-volume.service . .volume . ( ( WSL2) .) OPTIONS : o rw|ro o z|Z o [O] o [U] o [no]copy o [no]dev o [no]exec o [no]suid o [r]bind o [r]shared|[r]slave|[r]private[r]unbindable [1] <#Footnote1> o idmap[=options] o nocreate CONTAINER-DIR /src/docs . . . . . . . / . . --rm podman rm --volumes . nocreate . nocreate . . $ podman podman-pod.unit.5.md.in -v myvolume:/data:nocreate alpine -v . (Write Protected) - :ro :rw . - . . (Chowning) . chown : o (NeedsChown true ) o o o "image" ( idmap) UID/GID . chown . UID GID UID GID . :U UID GID UID GID . (chowning) UID/GID . inode . : . (Labeling) SELinux . . . :z :Z . . z . . / . Z . . : SELinux . :Z /. inode . z . chcon -Rt container_file_t PATH . : . . SELinux . --security-opt label=disable SELinux . (home) SELinux . $ podman podman-pod.unit.5.md.in --security-opt label=disable -v $HOME:/home/user fedora touch /home/user/file (Overlay) :O (overlay) . . lower upper . tmpfs. overlay upperdir workdir . upperdir workdir . : :O,upperdir=/some/upper,workdir=/some/work . . : O . . SELinux . container_share_t / container_file_t /. SELinux . . . (Mounts propagation) bind- mount private . . . shared . slave[1] <#Footnote1> : . [r]shared [r]slave [r]private [r]unbindable . bind-mounted . ( ) . shared shared . slave shared slave . [1] <#Footnote1> rbind . bind . copy . copy . . copy bind . nosuid SUID . nosuid . noexec . nodev . nodev . HOST-DIR dev suid exec . df HOST-DIR findmnt -o TARGET,PROPAGATION source-mount-dir . findmnt(1) /proc/self/mountinfo . "optional fields" . shared:N master:N slave (private) . [1] <#Footnote1> mount(8) . /foo bind mount mount --bind /foo /foo mount --make-private --make-shared /foo . /foo . . / /foo mount --make-shared / / . : . (Idmapped mount) idmap . idmap . idmap : idmap=uids=0-1-10#10-11-10;gids=0-100-10 . . . # . (EXAMPLES) : test.pod: [Pod] PodName=test centos.container: [Container] Image=quay.io/centos/centos:latest Exec=sh -c "sleep inf" Pod=test.pod (SEE ALSO) podman-kube-play(1), podman-systemd.unit(5), systemd.unit(5) podman-pod.unit(5)