mirror of
https://github.com/containers/podman.git
synced 2026-07-11 15:55:22 -04:00
This commit does the following: - Splits the podman-systemd.unit.5.md into multiple files - one for each quadlet file type. - Adds the podman-quadlet-basic-usage.7.md for quadlet examples. - Majority of the text in the new files is copied from the podman-systemd.unit.5.md - Adds support for very simple condditional in the markdown_preprocess. - Uses new logic in markdown_preprocess in options/*.md to use a single .md file for both podman subcommands man-pages and quadlet man-pages. This deduplicates the Quadlet man-pages a lot. - Adds new `@@option quadlet:source.md`` preprocess command to import such .md files from options directory. Signed-off-by: Jan Kaluza <jkaluza@redhat.com>
52 lines
2.7 KiB
Markdown
52 lines
2.7 KiB
Markdown
####> This option file is used in:
|
|
####> podman podman-container.unit.5.md.in, create, pod create, podman-pod.unit.5.md.in, run
|
|
####> If file is edited, make sure the changes
|
|
####> are applicable to all of those.
|
|
<< if is_quadlet >>
|
|
### `IP=IPv4`
|
|
<< else >>
|
|
#### **--ip**=*IPv4*
|
|
<< endif >>
|
|
|
|
Specify a static IPv4 address for the <<container|pod>>, for example **10.88.64.128**.
|
|
This option can only be used if the <<container|pod>> is joined to only a single network - i.e.,
|
|
<< '**Network=network-name**' if is_quadlet else '**--network=network-name**' >> is used at most once -
|
|
and if the <<container|pod>> is not joining another container's network namespace via
|
|
<< '**Network=container:_id_**' if is_quadlet else '**--network=container:_id_**' >>.
|
|
The address must be within the network's IP address pool (default **10.88.0.0/16**).
|
|
|
|
<< if is_quadlet >>
|
|
To specify multiple static IP addresses per <<container|pod>>, set multiple networks using
|
|
the **Network=** option with a static IP address specified for each using the `ip` mode for that option.
|
|
<< else >>
|
|
To specify multiple static IP addresses per <<container|pod>>, use the **--network** option with multiple comma-separated `ip` values:
|
|
|
|
```
|
|
--network mynet:ip=10.88.0.10,ip=10.88.0.11,ip=10.88.0.12
|
|
```
|
|
|
|
This assigns multiple static IPv4 addresses (**10.88.0.10**, **10.88.0.11**, **10.88.0.12**) to the same network interface.
|
|
|
|
**Multi-Subnet Networks:** When a network has multiple subnets, you can assign IPs from different subnets to the same <<container|pod>>. The IPs will be applied to a single network interface, with the first IP as primary and additional IPs as secondary addresses.
|
|
|
|
**IP Assignment Order:** For multi-subnet networks, IPs are grouped and ordered by their corresponding subnet, following the order in which subnets were defined during network creation (via `--subnet` flags). The order you specify IPs in the command does not affect the final assignment order. For example:
|
|
|
|
```
|
|
podman network create --subnet 10.89.0.0/24 --subnet 10.90.0.0/24 mynet
|
|
podman run --network mynet:ip=10.90.0.20,ip=10.89.0.10,ip=10.89.0.11 alpine
|
|
```
|
|
|
|
Results in IPs ordered by subnet: **10.89.0.10** (primary), **10.89.0.11** (secondary), **10.90.0.20** (secondary), since **10.89.0.0/24** was defined first.
|
|
|
|
**Dynamic Allocation:** If fewer IPs are specified than available subnets, the remaining subnets will receive dynamically allocated IPs. Dynamic IPs are assigned in subnet order after all static IPs are applied.
|
|
|
|
Example with multi-subnet network:
|
|
|
|
```
|
|
podman network create --subnet 10.89.0.0/24 --subnet 10.90.0.0/24 mynet
|
|
podman run --network mynet:ip=10.89.0.10,ip=10.90.0.20 alpine
|
|
```
|
|
|
|
This configures **eth0** with **10.89.0.10** (primary) and **10.90.0.20** (secondary).
|
|
<< endif >>
|