Containers

The following features, enhancements, and changes related to containers are introduced in this Oracle Linux 9 release.

Container Tools Packages Are Updated

The updated Container Tools RPM meta-package, which contain the Podman, Buildah, Skopeo, crun, and runc tools, are now available. Notable bug fixes and enhancements over the previous version include:

Notable changes in Podman v4.9:

  • You can now use Podman to load the modules on-demand by using the podman --module <your_module_name> command and to override the system and user configuration files. For more information, see Podman containers.conf Modules.

  • A new podman farm command with a set of the create, set, remove, and update subcommands has been added. With these commands, you can farm out builds to machines running podman for different architectures.

  • A new podman-compose command has been added, which runs Compose workloads by using an external compose provider such as Docker compose.

  • The podman build command now supports the --layer-label and --cw options.

  • The podman generate systemd command is deprecated. Use Quadlet to run containers and pods under systemd.

  • The podman build command now supports Containerfiles with the HereDoc syntax. For more information ,see Containerfile Multi-Line Instructions.

  • The podman kube play command now supports a new --publish-all option. Use this option to expose all containerPorts on the host.

For more information about notable changes, see https://github.com/containers/podman/blob/main/RELEASE_NOTES.md#470%22.

SQLite Now Default Podman Database

The SQLite database backend for Podman, which provides better stability, performance, and consistency when working with container metadata, is now fully supported.

You can explicitly specify the database backend in the containers.conf file by using the database_backend option. Available values are:
  • "" If an empty value is specified, the default value is sqlite. If you upgrade from a previous Oracle Linux version, and the empty value is specified, the default value is boltdb if BoltDB was already on the previous version of the system. This enables backward compatibility. If BoltDB was not already on the previous version of Oracle Linux, then sqlite is used.
  • "sqlite" The database backend for Podman uses SQLite.
  • "boltdb" The database backend for Podman uses BoltDB

Run the podman system reset command before switching to the SQLite database backend.

Containerfile Multi-Line Instructions

You can use the multi-line HereDoc instructions (Here Document notation) in the Containerfile file to simplify this file and reduce the number of image layers caused by performing multiple RUN directives.

For example, the original Containerfile can contain the following RUN directives:

RUN dnf update
RUN dnf -y install golang
RUN dnf -y install java

Instead of multiple RUN directives, you can use the HereDoc notation:

RUN <<EOF
dnf update
dnf -y install golang
dnf -y install java
EOF

pasta Networking Mode Is Available

The pasta network mode, available beginning with Podman 4.4.1, is a high-performance replacement of the default network mode slirp4netns and can handle IPv6 forwarding.

To use this network mode when the podman run command is used, install the passt package as follows:

sudo dnf install passt --network=pasta

To set a rootless network mode as default, edit the /etc/containers/containers.conf file with the following entry:

[network]
default_rootless_network_cmd

Podman Works With Images Compressed With zstd

In Podman, you can pull and push images compressed with the zstd format. zstd compression is more efficient and faster than gzip. Therefore, the amount of network traffic and storage for these operations is reduced.