mirror of https://github.com/containers/podman.git
135 KiB
135 KiB
Release Notes
2.0.6
Bugfixes
- Fixed a bug where running systemd in a container on a cgroups v1 system would fail.
- Fixed a bug where
/etc/passwdcould be re-created every time a container is restarted if the container's/etc/passwddid not contain an entry for the user the container was started as. - Fixed a bug where containers without an
/etc/passwdfile specifying a non-root user would not start. - Fixed a bug where the
--remoteflag would sometimes not make remote connections and would instead attempt to run Podman locally.
Misc
- Updated the containers/common library to v0.14.10
2.0.5
Features
- Rootless Podman will now add an entry to
/etc/passwdfor the user who ran Podman if run with--userns=keep-id. - The
podman system connectioncommand has been reworked to support multiple connections, and reenabled for use! - Podman now has a new global flag,
--connection, to specify a connection to a remote Podman API instance.
Changes
- Podman's automatic systemd integration (activated by the
--systemd=trueflag, set by default) will now activate for containers using/usr/local/sbin/initas their command, instead of just/usr/sbin/initand/sbin/init(and any path ending insystemd). - Seccomp profiles specified by the
--security-opt seccomp=...flag topodman createandpodman runwill now be honored even if the container was created using--privileged.
Bugfixes
- Fixed a bug where the
podman play kubewould not honor thehostIPfield for port forwarding (#5964). - Fixed a bug where the
podman generate systemdcommand would panic on an invalid restart policy being specified (#7271). - Fixed a bug where the
podman imagescommand could take a very long time (several minutes) to complete when a large number of images were present. - Fixed a bug where the
podman logscommand with the--tailflag would not work properly when a large amount of output would be printed (#7230). - Fixed a bug where the
podman execcommand with remote Podman would not return a non-zero exit code when the exec session failed to start (e.g. invoking a non-existent command) (#6893). - Fixed a bug where the
podman loadcommand with remote Podman would did not honor user-specified tags (#7124). - Fixed a bug where the
podman system servicecommand, when run as a non-root user by Systemd, did not properly handle the Podman pause process and would not restart properly as a result (#7180). - Fixed a bug where the
--publishflag topodman create,podman run, andpodman pod createdid not properly handle a host IP of 0.0.0.0 (attempting to bind to literal 0.0.0.0, instead of all IPs on the system) (#7104). - Fixed a bug where the
podman start --attachcommand would not print the container's exit code when the command exited due to the container exiting. - Fixed a bug where the
podman rmcommand with remote Podman would not remove volumes, even if the--volumesflag was specified (#7128). - Fixed a bug where the
podman runcommand with remote Podman and the--rmflag could exit before the container was fully removed. - Fixed a bug where the
--pod new:...flag topodman runandpodman createwould create a pod that did not share any namespaces. - Fixed a bug where the
--preserve-fdsflag topodman runandpodman execcould close the wrong file descriptors while trying to close user-provided descriptors after passing them into the container. - Fixed a bug where default environment variables (
$PATHand$TERM) were not set in containers when not provided by the image. - Fixed a bug where pod infra containers were not properly unmounted after exiting.
- Fixed a bug where networks created with
podman network createwith an IPv6 subnet did not properly set an IPv6 default route. - Fixed a bug where the
podman savecommand would not work properly when its output was piped to another command (#7017). - Fixed a bug where containers using a systemd init on a cgroups v1 system could leak mounts under
/sys/fs/cgroup/systemdto the host. - Fixed a bug where
podman buildwould not generate an event on completion (#7022). - Fixed a bug where the
podman historycommand with remote Podman printed incorrect creation times for layers (#7122). - Fixed a bug where Podman would not create working directories specified by the container image if they did not exist.
- Fixed a bug where Podman did not clear
CMDfrom the container image if the user overrodeENTRYPOINT(#7115). - Fixed a bug where error parsing image names were not fully reported (part of the error message containing the exact issue was dropped).
- Fixed a bug where the
podman imagescommand with remote Podman did not support printing image tags in Go templates supplied to the--formatflag (#7123). - Fixed a bug where the
podman rmi --forcecommand would not attempt to unmount containers it was removing, which could cause a failure to remove the image. - Fixed a bug where the
podman generate systemd --newcommand could incorrectly quote arguments to Podman that contained whitespace, leading to nonfunctional unit files (#7285). - Fixed a bug where the
podman versioncommand did not properly include build time and Git commit. - Fixed a bug where running systemd in a Podman container on a system that did not use the
systemdcgroup manager would fail (#6734). - Fixed a bug where capabilities from
--cap-addwere not properly added when a container was started as a non-root user via--user. - Fixed a bug where Pod infra containers were not properly cleaned up when they stopped, causing networking issues (#7103).
API
- Fixed a bug where the libpod and compat Build endpoints did not accept the
application/tarcontent type (instead only acceptingapplication/x-tar) (#7185). - Fixed a bug where the libpod Exists endpoint would attempt to write a second header in some error conditions (#7197).
- Fixed a bug where compat and libpod Network Inspect and Network Remove endpoints would return a 500 instead of 404 when the requested network was not found.
- Added a versioned
_pingendpoint (e.g.http://localhost/v1.40/_ping). - Fixed a bug where containers started through a systemd-managed instance of the REST API would be shut down when
podman system serviceshut down due to its idle timeout (#7294). - Added stronger parameter verification for the libpod Network Create endpoint to ensure subnet mask is a valid value.
- The
PodURL parameter to the Libpod Container List endpoint has been deprecated; the information previously gated by thePodboolean will now be included in the response unconditionally.
Misc
- Updated Buildah to v1.15.1
- Updated containers/image library to v5.5.2
2.0.4
Bugfixes
- Fixed a bug where the output of
podman image searchdid not populate the Description field as it was mistakenly assigned to the ID field. - Fixed a bug where
podman build -andpodman buildon an HTTP target would fail. - Fixed a bug where rootless Podman would improperly chown the copied-up contents of anonymous volumes (#7130).
- Fixed a bug where Podman would sometimes HTML-escape special characters in its CLI output.
- Fixed a bug where the
podman start --attach --interactivecommand would print the container ID of the container attached to when exiting (#7068). - Fixed a bug where
podman run --ipc=host --pid=hostwould only set--pid=hostand not--ipc=host(#7100). - Fixed a bug where the
--publishargument topodman run,podman createandpodman pod createwould not allow binding the same container port to more than one host port (#7062). - Fixed a bug where incorrect arguments to
podman images --formatcould cause Podman to segfault. - Fixed a bug where
podman rmi --forceon an image ID with more than one name and at least one container using the image would not completely remove containers using the image (#7153). - Fixed a bug where memory usage in bytes and memory use percentage were swapped in the output of
podman stats --format=json.
API
- Fixed a bug where the libpod and compat events endpoints would fail if no filters were specified (#7078).
- Fixed a bug where the
CgroupVersionfield in responses from the compat Info endpoint was prefixed by "v" (instead of just being "1" or "2", as is documented).
2.0.3
Features
- The
podman searchcommand now allows wildcards in search terms. - The
podman play kubecommand now supports theIfNotPresentpull type.
Changes
- The
--disable-content-trustflag has been added to Podman for Docker compatibility. This is a Docker-specific option and has no effect in Podman; it is provided only to ensure command line compatibility for scripts (#7034). - Setting a static IP address or MAC address for rootless containers and pods now causes an error; previously, they were silently ignored.
- The
/sys/devfolder is now masked in containers to prevent a potential information leak from the host.
Bugfixes
- Fixed a bug where rootless Podman would select the wrong cgroup manager on cgroups v1 systems where the user in question had an active systemd user session (#6982).
- Fixed a bug where systems with Apparmor could not run privileged containers (#6933).
- Fixed a bug where ENTRYPOINT and CMD from images were improperly handled by
podman play kube(#6995). - Fixed a bug where the
--pids-limitflag topodman createandpodman runwas parsed incorrectly and was unusable (#6908). - Fixed a bug where the
podman system dfcommand would error if untagged images were present (#7015). - Fixed a bug where the
podman imagescommand would display incorrect tags if a port number was included in the repository. - Fixed a bug where Podman did not set a default umask and default rlimits (#6989).
- Fixed a bug where protocols in port mappings were not recognized unless they were lower-case (#6948).
- Fixed a bug where information on pod infra containers was not included in the output of
podman pod inspect. - Fixed a bug where Podman's systemd detection (activated by the enabled-by-default
--systemd=trueflag) would not flag a container for systemd mode if systemd was part of the entrypoint, not the command (#6920). - Fixed a bug where
podman start --attachwas not defaulting--sig-proxyto true (#6928). - Fixed a bug where
podman inspectwould show an incorrect command (podman system service, the command used to start the server) for containers created by a remote Podman client. - Fixed a bug where the
podman execcommand with the remote client would not print output if the-tor-iflags where not provided. - Fixed a bug where some variations of the
--format {{ json . }}topodman info(involving added or removed whitespace) would not be accepted (#6927). - Fixed a bug where Entrypoint could not be cleared at the command line (if unset via
--entrypoint="", it would be reset to the image's entrypoint) (#6935).
API
- Fixed a bug where the events endpoints (both libpod and compat) could potentially panic on parsing filters.
- Fixed a bug where the compat Create endpoint for containers did not properly handle Entrypoint and Command.
- Fixed a bug where the Logs endpoint for containers (both libpod and compat) would not properly handle client disconnect, resulting in high CPU usage.
- The type of filters on the compat events endpoint has been adjusted to match Docker's implementation (#6899).
- The idle connection counter now properly handles hijacked connections.
- All endpoints that hijack will now properly print headers per RFC 7230 standards.
Misc
- Updated containers/common to v0.14.6
2.0.2
Changes
- The
podman system connectioncommand has been temporarily disabled, as it was not functioning as expected.
Bugfixes
- Fixed a bug where the
podman pscommand would not truncate long container commands, resulting in display issues as the column could become extremely wide (the--no-truncflag can be used to print the full command). - Fixed a bug where
podman podcommands operationg on multiple containers (e.g.podman pod stopandpodman pod kill) would not print errors from individual containers, but only a warning that some containers had failed. - Fixed a bug where the
podman system servicecommand would panic if a connection to the Events endpoint hung up early (#6805). - Fixed a bug where rootless Podman would create anonymous and named volumes with the wrong owner for containers run with the
--userdirective. - Fixed a bug where the
TMPDIRenvironment variable (used for storing temporary files while pulling images) was not being defaulted (if unset) to/var/tmp. - Fixed a bug where the
--publishflag topodman createandpodman runrequired that a host port be specified if an IP address was given (#6806). - Fixed a bug where in
podman-remotecommands performing an attach (podman run,podman attach,podman start --attach,podman exec) did not properly configure the terminal on Windows. - Fixed a bug where the
--remoteflag to Podman required an argument, despite being a boolean (#6704). - Fixed a bug where the
podman generate systemd --newcommand could generate incorrect unit files for a pod if a container in the pod was created using the--pod=...flag (with an =, instead of a space, before the pod ID) (#6766). - Fixed a bug where
NPROCandNOFILErlimits could be improperly set for rootless Podman containers, causing them to fail to start. - Fixed a bug where
podman mountas rootless did not error (thepodman mountcommand cannot be run rootless unless it is run inside apodman unshareshell). - Fixed a bug where in some cases a race in events handling code could cause error messages related to retrieving events to be lost.
API
- Fixed a bug where the timestamp format for Libpod image list endpoint was incorrect - the format has been switched to Unix time.
- Fixed a bug where the compatability Create endpoint did not handle empty entrypoints properly.
- Fixed a bug where the compatibility network remove endpoint would improperly handle errors where the network was not found.
- Fixed a bug where containers would be created with improper permissions because of a umask issue (#6787).
2.0.1
Changes
- The
podman system connectioncommand was mistakenly omitted from the 2.0 release, and has been included here. - The
podman ps --format=jsoncommand once again includes container's creation time in a human-readable format in theCreatedAtkey. - The
podman inspectcommands on containers now displays forwarded ports in a format compatible withdocker inspect. - The
--log-level=debugflag topodman runandpodman execwill enable syslog for exit commands, ensuring that debug logs are collected for these otherwise-unlogged commands.
Bugfixes
- Fixed a bug where
podman builddid not properly handle the--http-proxyand--cgroup-managerflags. - Fixed a bug where error messages related to a missing or inaccessible
/etc/subuidor/etc/subgidfile were very unclear (#6572). - Fixed a bug where the
podman logs --followcommand would not stop when the container being followed exited. - Fixed a bug where the
--privilegedflag had mistakenly been marked as conflicting with--group-addand--security-opt. - Fixed a bug where the
PODMAN_USERNSenvironment variable was not being honored (#6705). - Fixed a bug where the
podman image loadcommand would require one argument be passed, when no arguments is also valid (#6718). - Fixed a bug where the bash completions did not include the
podman networkcommand and its subcommands. - Fixed a bug where the mount command would not work inside of rootless containers (#6735).
- Fixed a bug where SSH agent authentication support was not properly working in the
podman-remoteandpodman --remotecommands. - Fixed a bug where the
podman untagcommand was not erroring when no matching image was found. - Fixed a bug where stop signal for containers was not being set properly if not explicitly provided.
- Fixed a bug where the
podman pscommand was not showing port mappings for containers which share a network namespace with another container (e.g. are part of a pod). - Fixed a bug where the
--remoteflag could unintentionally be forwarded into containers when usingpodman-remote. - Fixed a bug where unit files generated for pods by
podman generate systemdwould not allow individual containers to be restarted (#6770). - Fixed a bug where the
podman runandpodman createcommands did not support all transports thatpodman pulldoes (#6744). - Fixed a bug where the
labeloption to--security-optwould only be shown once inpodman inspect, even if provided multiple times.
API
- Fixed a bug where network endpoint URLs in the compatability API were mistakenly suffixed with
/json. - Fixed a bug where the Libpod volume creation endpoint returned 200 instead of 201 on success.
Misc
- Updated containers/common to v0.14.3
2.0.0
Features
- The REST API and
podman system serviceare no longer experimental, and ready for use! - The Podman command now supports remotely connections via the REST API using the
--remoteflag. - The Podman remote client has been entirely rewritten to use the HTTP API instead of Varlink.
- The
podman system connectioncommand has been added to allow configuring the endpoint thatpodman-remoteandpodman --remotewill connect to. - The
podman generate systemdcommand now supports the--newflag when used with pods, allowing portable services for pods to be created. - The
podman play kubecommand now supports running Kubernetes Deployment YAML. - The
podman execcommand now supports the--detachflag to run commands in the container in the background. - The
-pflag topodman runandpodman createnow supports forwarding ports to IPv6 addresses. - The
podman run,podman createandpodman pod createcommand now support a--replaceflag to remove and replace any existing container (or, forpod create, pod) with the same name - The
--restart-policyflag topodman runandpodman createnow supports theunless-stoppedrestart policy. - The
--log-driverflag topodman runandpodman createnow supports thenonedriver, which does not log the container's output. - The
--mountflag topodman runandpodman createnow acceptsreadonlyoption as an alias toro. - The
podman generate systemdcommand now supports the--container-prefix,--pod-prefix, and--separatorarguments to control the name of generated unit files. - The
podman network lscommand now supports the--filterflag to filter results. - The
podman auto-updatecommand now supports specifying an authfile to use when pulling new images on a per-container basis using theio.containers.autoupdate.authfilelabel.
Changes
- Varlink support, including the
podman varlinkcommand, is deprecated and will be removed in the next release. - As part of the implementation of the REST API, JSON output for some commands (
podman ps,podman imagesmost notably) has changed. - Named and anonymous volumes and
tmpfsfilesystems added to containers are no longer mountednoexecby default.
Bugfixes
- Fixed a bug where the
podman execcommand would log to journald when run in containers loggined to journald (#6555). - Fixed a bug where the
podman auto-updatecommand would not preserve the OS and architecture of the original image when pulling a replacement (#6613). - Fixed a bug where the
podman cpcommand could create an extramergeddirectory when copying into an existing directory (#6596). - Fixed a bug where the
podman pod statscommand would crash on pods run with--network=host(#5652). - Fixed a bug where containers logs written to journald did not include the name of the container.
- Fixed a bug where the
podman network inspectandpodman network rmcommands did not properly handle non-default CNI configuration paths (#6212). - Fixed a bug where Podman did not properly remove containers when using the Kata containers OCI runtime.
- Fixed a bug where
podman inspectwould sometimes incorrectly report the network mode of containers started with--net=none. - Podman is now better able to deal with cases where
conmonis killed before the container it is monitoring.
Misc
- The default Podman CNI configuration now sets
HairpinModeto allow communication between containers by connecting to a forwarded port on the host. - Updated Buildah to v1.15.0
- Updated containers/storage to v1.20.2
- Updated containers/image to v5.5.1
- Updated containers/common to v0.14.0
1.9.3
Bugfixes
- Fixed a bug where, on FIPS enabled hosts, FIPS mode secrets were not properly mounted into containers
- Fixed a bug where builds run over Varlink would hang (#6237)
Misc
- Named volumes and tmpfs filesystems will no longer default to mounting
noexecfor improved compatibility with Docker - Updated Buildah to v1.14.9
1.9.2
Bugfixes
- Fixed a bug where
podman savewould fail when the target image was specified by digest (#5234) - Fixed a bug where rootless containers with ports forwarded to them could panic and dump core due to a concurrency issue (#6018)
- Fixed a bug where rootless Podman could race when opening the rootless user namespace, resulting in commands failing to run
- Fixed a bug where HTTP proxy environment variables forwarded into the container by the
--http-proxyflag could not be overridden by--envor--env-file(#6017) - Fixed a bug where rootless Podman was setting resource limits on cgroups v2 systems that were not using systemd-managed cgroups (and thus did not support resource limits), resulting in containers failing to start
Misc
- Rootless containers will now automatically set their ulimits to the maximum allowed for the user running the container, to match the behavior of containers run as root
- Packages managed by the core Podman team will no longer include a default
libpod.conf, instead defaulting tocontainers.conf. The default libpod.conf will remain available in the Github repository until the release of Podman 2.0 - The default Podman CNI network configuration now sets HairpinMode to allow containers to access other containers via ports published on the host
- Updated containers/common to v0.8.4
1.9.1
Bugfixes
- Fixed a bug where healthchecks could become nonfunctional if container log paths were manually set with
--log-pathand multiple container logs were placed in the same directory (#5915) - Fixed a bug where rootless Podman could, when using an older
libpod.conf, print numerous warning messages about an invalid CGroup manager config - Fixed a bug where rootless Podman would sometimes fail to close the rootless user namespace when joining it (#5873)
Misc
- Updated containers/common to v0.8.2
1.9.0
Features
- Experimental support has been added for
podman run --userns=auto, which automatically allocates a unique UID and GID range for the new container's user namespace - The
podman play kubecommand now has a--networkflag to place the created pod in one or more CNI networks - The
podman commitcommand now supports an--iidfileflag to write the ID of the committed image to a file - Initial support for the new
containers.confconfiguration file has been added.containers.confallows for much more detailed configuration of some Podman functionality
Changes
- There has been a major cleanup of the
podman infocommand resulting in breaking changes. Many fields have been renamed to better suit usage with APIv2 - All uses of the
--timeoutflag have been switched to prefer the alternative--time. The--timeoutflag will continue to work, but man pages and--helpwill use the--timeflag instead
Bugfixes
- Fixed a bug where some volume mounts from the host would sometimes not properly determine the flags they should use when mounting
- Fixed a bug where Podman was not propagating
$PATHto Conmon and the OCI runtime, causing issues for some OCI runtimes that required it - Fixed a bug where rootless Podman would print error messages about missing support for systemd cgroups when run in a container with no cgroup support (#5488)
- Fixed a bug where
podman play kubewould not properly handle container-only port mappings (#5610) - Fixed a bug where the
podman container prunecommand was not pruning containers in thecreatedandconfiguredstates - Fixed a bug where Podman was not properly removing CNI IP address allocations after a reboot (#5433)
- Fixed a bug where Podman was not properly applying the default Seccomp profile when
--security-optwas not given at the command line
HTTP API
- Many Libpod API endpoints have been added, including
Changes,Checkpoint,Init, andRestore - Resolved issues where the
podman system servicecommand would time out and exit while there were still active connections - Stability overall has greatly improved as we prepare the API for a beta release soon with Podman 2.0
Misc
- The default infra image for pods has been upgraded to
k8s.gcr.io/pause:3.2(from 3.1) to address a bug in the architecture metadata for non-AMD64 images - The
slirp4netnsnetworking utility in rootless Podman now uses Seccomp filtering where available for improved security - Updated Buildah to v1.14.8
- Updated containers/storage to v1.18.2
- Updated containers/image to v5.4.3
- Updated containers/common to v0.8.1
1.8.2
Features
- Initial support for automatically updating containers managed via Systemd unit files has been merged. This allows containers to automatically upgrade if a newer version of their image becomes available
Bugfixes
- Fixed a bug where unit files generated by
podman generate systemd --newwould not force containers to detach, causing the unit to time out when trying to start - Fixed a bug where
podman system resetcould delete important system directories if run as rootless on installations created by older Podman (#4831) - Fixed a bug where image built by
podman buildwould not properly set the OS and Architecture they were built with (#5503) - Fixed a bug where attached
podman runwith--sig-proxyenabled (the default), when built with Go 1.14, would repeatedly send signal 23 to the process in the container and could generate errors when the container stopped (#5483) - Fixed a bug where rootless
podman runcommands could hang when forwarding ports - Fixed a bug where rootless Podman would not work when
/procwas mounted with thehidepidoption set - Fixed a bug where the
podman system servicecommand would use large amounts of CPU when--timeoutwas set to 0 (#5531)
HTTP API
- Initial support for Libpod endpoints related to creating and operating on image manifest lists has been added
- The Libpod Healthcheck and Events API endpoints are now supported
- The Swagger endpoint can now handle cases where no Swagger documentation has been generated
Misc
- Updated Buildah to v1.14.3
- Updated containers/storage to v1.16.5
- Several performance improvements have been made to creating containers, which should somewhat improve the performance of
podman createandpodman run
1.8.1
Features
- Many networking-related flags have been added to
podman pod createto enable customization of pod networks, including--add-host,--dns,--dns-opt,--dns-search,--ip,--mac-address,--network, and--no-hosts - The
podman ps --format=jsoncommand now includes the ID of the image containers were created with - The
podman runandpodman createcommands now feature an--rmiflag to remove the image the container was using after it exits (if no other containers are using said image) (#4628) - The
podman createandpodman runcommands now support the--device-cgroup-ruleflag (#4876) - While the HTTP API remains in alpha, many fixes and additions have landed. These are documented in a separate subsection below
- The
podman createandpodman runcommands now feature a--no-healthcheckflag to disable healthchecks for a container (#5299) - Containers now recognize the
io.containers.capabilitieslabel, which specifies a list of capabilities required by the image to run. These capabilities will be used as long as they are more restrictive than the default capabilities used - YAML produced by the
podman generate kubecommand now includes SELinux configuration passed into the container via--security-opt label=...(#4950)
Bugfixes
- Fixed CVE-2020-1726, a security issue where volumes manually populated before first being mounted into a container could have those contents overwritten on first being mounted into a container
- Fixed a bug where Podman containers with user namespaces in CNI networks with the DNS plugin enabled would not have the DNS plugin's nameserver added to their
resolv.conf(#5256) - Fixed a bug where trailing
/characters in image volume definitions could cause them to not be overridden by a user-specified mount at the same location (#5219) - Fixed a bug where the
labeloption inlibpod.conf, used to disable SELinux by default, was not being respected (#5087) - Fixed a bug where the
podman loginandpodman logoutcommands required the registry to log into be specified (#5146) - Fixed a bug where detached rootless Podman containers could not forward ports (#5167)
- Fixed a bug where rootless Podman could fail to run if the pause process had died
- Fixed a bug where Podman ignored labels that were specified with only a key and no value (#3854)
- Fixed a bug where Podman would fail to create named volumes when the backing filesystem did not support SELinux labelling (#5200)
- Fixed a bug where
--detach-keys=""would not disable detaching from a container (#5166) - Fixed a bug where the
podman pscommand was too aggressive when filtering containers and would force--allon in too many situations - Fixed a bug where the
podman play kubecommand was ignoring image configuration, including volumes, working directory, labels, and stop signal (#5174) - Fixed a bug where the
CreatedandCreatedTimefields inpodman images --format=jsonwere misnamed, which also broke Go template output for those fields (#5110) - Fixed a bug where rootless Podman containers with ports forwarded could hang when started (#5182)
- Fixed a bug where
podman pullcould fail to parse registry names including port numbers - Fixed a bug where Podman would incorrectly attempt to validate image OS and architecture when starting containers
- Fixed a bug where Bash completion for
podman build -fwould not list available files that could be built (#3878) - Fixed a bug where
podman commit --changewould perform incorrect validation, resulting in valid changes being rejected (#5148) - Fixed a bug where
podman logs --tailcould take large amounts of memory when the log file for a container was large (#5131) - Fixed a bug where Podman would sometimes incorrectly generate firewall rules on systems using
firewalld - Fixed a bug where the
podman inspectcommand would not display network information for containers properly if a container joined multiple CNI networks (#4907) - Fixed a bug where the
--utsflag topodman createandpodman runwould only allow specifying containers by full ID (#5289) - Fixed a bug where rootless Podman could segfault when passed a large number of file descriptors
- Fixed a bug where the
podman portcommand was incorrectly interpreting additional arguments as container names, instead of port numbers - Fixed a bug where units created by
podman generate systemddid not depend on network targets, and so could start before the system network was ready (#4130) - Fixed a bug where exec sessions in containers which did not specify a user would not inherit supplemental groups added to the container via
--group-add - Fixed a bug where Podman would not respect the
$TMPDIRenvironment variable for placing large temporary files during some operations (e.g.podman pull) (#5411)
HTTP API
- Initial support for secure connections to servers via SSH tunneling has been added
- Initial support for the libpod
createandlogsendpoints for containers has been added - Added a
/swagger/endpoint to serve API documentation - The
jsonendpoint for containers has received many fixes - Filtering images and containers has been greatly improved, with many bugs fixed and documentation improved
- Image creation endpoints (commit, pull, etc) have seen many fixes
- Server timeout has been fixed so that long operations will no longer trigger the timeout and shut the server down
- The
statsendpoint for containers has seen major fixes and now provides accurate output - Handling the HTTP 304 status code has been fixed for all endpoints
- Many fixes have been made to API documentation to ensure it matches the code
Misc
- Updated vendored Buildah to v1.14.2
- Updated vendored containers/storage to v1.16.2
- The
Createdfield topodman images --format=jsonhas been renamed toCreatedSinceas part of the fix for (#5110). Go templates using the old name should still work - The
CreatedTimefield topodman images --format=jsonhas been renamed toCreatedAtas part of the fix for (#5110). Go templates using the old name should still work - The
beforefilter topodman imageshas been renamed tosincefor Docker compatibility. Usingbeforewill still work, but documentation has been changed to use the newsincefilter - Using the
--passwordflag topodman loginnow warns that passwords are being passed in plaintext - Some common cases where Podman would deadlock have been fixed to warn the user that
podman system renumbermust be run to resolve the deadlock
1.8.0
Features
- The
podman system servicecommand has been added, providing a preview of Podman's new Docker-compatible API. This API is still very new, and not yet ready for production use, but is available for early testing - Rootless Podman now uses Rootlesskit for port forwarding, which should greatly improve performance and capabilities
- The
podman untagcommand has been added to remove tags from images without deleting them - The
podman inspectcommand on images now displays previous names they used - The
podman generate systemdcommand now supports a--newoption to generate service files that create and run new containers instead of managing existing containers - Support for
--log-opt tag=to set logging tags has been added to thejournaldlog driver - Added support for using Seccomp profiles embedded in images for
podman runandpodman createvia the new--seccomp-policyCLI flag (#4806) - The
podman play kubecommand now honors pull policy (#4880)
Bugfixes
- Fixed a bug where the
podman cpcommand would not copy the contents of directories when paths ending in/.were given (#4717) - Fixed a bug where the
podman play kubecommand did not properly locate Seccomp profiles specified relative to localhost (#4555) - Fixed a bug where the
podman infocommand for remote Podman did not show registry information (#4793) - Fixed a bug where the
podman execcommand did not support having input piped into it (#3302) - Fixed a bug where the
podman cpcommand with rootless Podman on CGroups v2 systems did not properly determine if the container could be paused while copying (#4813) - Fixed a bug where the
podman container prune --forcecommand could possible remove running containers if they were started while the command was running (#4844) - Fixed a bug where Podman, when run as root, would not properly configure
slirp4netnsnetworking when requested (#4853) - Fixed a bug where
podman run --userns=keep-iddid not work when the user had a UID over 65535 (#4838) - Fixed a bug where rootless
podman runandpodman createwith the--userns=keep-idoption could change permissions on/run/user/$UIDand break KDE (#4846) - Fixed a bug where rootless Podman could not be run in a systemd service on systems using CGroups v2 (#4833)
- Fixed a bug where
podman inspectwould show CPUShares as 0, instead of the default (1024), when it was not explicitly set (#4822) - Fixed a bug where
podman-remote pushwould segfault (#4706) - Fixed a bug where image healthchecks were not shown in the output of
podman inspect(#4799) - Fixed a bug where named volumes created with containers from pre-1.6.3 releases of Podman would be autoremoved with their containers if the
--rmflag was given, even if they were given names (#5009) - Fixed a bug where
podman historywas not computing image sizes correctly (#4916) - Fixed a bug where Podman would not error on invalid values to the
--sortflag topodman images - Fixed a bug where providing a name for the image made by
podman commitwas mandatory, not optional as it should be (#5027) - Fixed a bug where the remote Podman client would append an extra
"to%PATH(#4335) - Fixed a bug where the
podman buildcommand would sometimes ignore the-foption and build the wrong Containerfile - Fixed a bug where the
podman ps --filtercommand would only filter running containers, instead of all containers, if--allwas not passed (#5050) - Fixed a bug where the
podman loadcommand on compressed images would leave an extra copy on disk - Fixed a bug where the
podman restartcommand would not properly clean up the network, causing it to function differently frompodman stop; podman start(#5051) - Fixed a bug where setting the
--memory-swapflag topodman createandpodman runto-1(to indicate unlimited) was not supported (#5091)
Misc
- Initial work on version 2 of the Podman remote API has been merged, but is still in an alpha state and not ready for use. Read more here
- Many formatting corrections have been made to the manpages
- The changes to address (#5009) may cause anonymous volumes created by Podman versions 1.6.3 to 1.7.0 to not be removed when their container is removed
- Updated vendored Buildah to v1.13.1
- Updated vendored containers/storage to v1.15.8
- Updated vendored containers/image to v5.2.0
1.7.0
Features
- Added support for setting a static MAC address for containers
- Added support for creating
macvlannetworks withpodman network create, allowing Podman containers to be attached directly to networks the host is connected to - The
podman image pruneandpodman container prunecommands now support the--filterflag to filter what will be pruned, and now prompts for confirmation when run without--force(#4410 and #4411) - Podman now creates CGroup namespaces by default on systems using CGroups v2 (#4363)
- Added the
podman system resetcommand to remove all Podman files and perform a factory reset of the Podman installation - Added the
--historyflag topodman imagesto display previous names used by images (#4566) - Added the
--ignoreflag topodman rmandpodman stopto not error when requested containers no longer exist - Added the
--cidfileflag topodman rmandpodman stopto read the IDs of containers to be removed or stopped from a file - The
podman play kubecommand now honors Seccomp annotations (#3111) - The
podman play kubecommand now honorsRunAsUser,RunAsGroup, andselinuxOptions - The output format of the
podman versioncommand has been changed to better matchdocker versionwhen using the--formatflag - Rootless Podman will no longer initialize containers/storage twice, removing a potential deadlock preventing Podman commands from running while an image was being pulled (#4591)
- Added
tmpcopyupandnotmpcopyupoptions to the--tmpfsand--mount type=tmpfsflags topodman createandpodman runto control whether the content of directories are copied into tmpfs filesystems mounted over them - Added support for disabling detaching from containers by setting empty detach keys via
--detach-keys="" - The
podman buildcommand now supports the--pulland--pull-neverflags to control when images are pulled during a build - The
podman ps -pcommand now shows the name of the pod as well as its ID (#4703) - The
podman inspectcommand on containers will now display the command used to create the container - The
podman infocommand now displays information on registry mirrors (#4553)
Bugfixes
- Fixed a bug where Podman would use an incorrect runtime directory as root, causing state to be deleted after root logged out and making Podman in systemd services not function properly
- Fixed a bug where the
--changeflag topodman importandpodman commitwas not being parsed properly in many cases - Fixed a bug where detach keys specified in
libpod.confwere not used by thepodman attachandpodman execcommands, which always used the global defaultctrl-p,ctrl-qkey combination (#4556) - Fixed a bug where rootless Podman was not able to run
podman pod statseven on CGroups v2 enabled systems (#4634) - Fixed a bug where rootless Podman would fail on kernels without the
renameat2syscall (#4570) - Fixed a bug where containers with chained network namespace dependencies (IE, container A using
--net container=Band container B using--net container=C) would not properly mount/etc/hostsand/etc/resolv.confinto the container (#4626) - Fixed a bug where
podman runwith the--rmflag and without-dcould, when run in the background, throw a 'container does not exist' error when attempting to remove the container after it exited - Fixed a bug where named volume locks were not properly reacquired after a reboot, potentially leading to deadlocks when trying to start containers using the volume (#4605 and #4621)
- Fixed a bug where Podman could not completely remove containers if sent SIGKILL during removal, leaving the container name unusable without the
podman rm --storagecommand to complete removal (#3906) - Fixed a bug where checkpointing containers started with
--rmwas allowed when--exportwas not specified (the container, and checkpoint, would be removed after checkpointing was complete by--rm) (#3774) - Fixed a bug where the
podman pod prunecommand would fail if containers were present in the pods and the--forceflag was not passed (#4346) - Fixed a bug where containers could not set a static IP or static MAC address if they joined a non-default CNI network (#4500)
- Fixed a bug where
podman system renumberwould always throw an error if a container was mounted when it was run - Fixed a bug where
podman container restorewould fail with containers using a user namespace - Fixed a bug where rootless Podman would attempt to use the journald events backend even on systems without systemd installed
- Fixed a bug where
podman historywould sometimes not properly identify the IDs of layers in an image (#3359) - Fixed a bug where containers could not be restarted when Conmon v2.0.3 or later was used
- Fixed a bug where Podman did not check image OS and Architecture against the host when starting a container
- Fixed a bug where containers in pods did not function properly with the Kata OCI runtime (#4353)
- Fixed a bug where `podman info --format '{{ json . }}' would not produce JSON output (#4391)
- Fixed a bug where Podman would not verify if files passed to
--authfileexisted (#4328) - Fixed a bug where
podman images --digestwould not always print digests when they were available - Fixed a bug where rootless
podman runcould hang due to a race with reading and writing events - Fixed a bug where rootless Podman would print warning-level logs despite not be instructed to do so (#4456)
- Fixed a bug where
podman pullwould attempt to fetch from remote registries when pulling an unqualified image using thedocker-daemontransport (#4434) - Fixed a bug where
podman cpwould not work if STDIN was a pipe - Fixed a bug where
podman execcould stop accepting input if anything was typed between the command being run and the exec session starting (#4397) - Fixed a bug where
podman logs --tail 0would print all lines of a container's logs, instead of no lines (#4396) - Fixed a bug where the timeout for
slirp4netnswas incorrectly set, resulting in an extremely long timeout (#4344) - Fixed a bug where the
podman statscommand would print CPU utilizations figures incorrectly (#4409) - Fixed a bug where the
podman inspect --sizecommand would not print the size of the container's read/write layer if the size was 0 (#4744) - Fixed a bug where the
podman killcommand was not properly validating signals before use (#4746) - Fixed a bug where the
--quietand--formatflags topodman pscould not be used at the same time - Fixed a bug where the
podman stopcommand was not stopping exec sessions when a container was created without a PID namespace (--pid=host) - Fixed a bug where the
podman pod rm --forcecommand was not removing anonymous volumes for containers that were removed - Fixed a bug where the
podman checkpointcommand would not export all changes to the root filesystem of the container if performed more than once on the same container (#4606) - Fixed a bug where containers started with
--rmwould not be automatically removed on being stopped if an exec session was running inside the container (#4666)
Misc
- The fixes to runtime directory path as root can cause strange behavior if an upgrade is performed while containers are running
- Updated vendored Buildah to v1.12.0
- Updated vendored containers/storage library to v1.15.4
- Updated vendored containers/image library to v5.1.0
- Kata Containers runtimes (
kata-runtime,kata-qemu, andkata-fc) are now present in the default libpod.conf, but will not be available unless Kata containers is installed on the system - Podman previously did not allow the creation of containers with a memory limit lower than 4MB. This restriction has been removed, as the
crunruntime can create containers with significantly less memory
1.6.3
Features
- Handling of the
libpod.confconfiguration file has seen major changes. Most significantly, rootless users will no longer automatically receive a complete configuration file when they first use Podman, and will instead only receive differences from the global configuration. - Initial support for the CNI DNS plugin, which allows containers to resolve the IPs of other containers via DNS name, has been added
- Podman now supports anonymous named volumes, created by specifying only a destination to the
-vflag to thepodman createandpodman runcommands - Named volumes now support
uidandgidoptions in--opt o=...to set UID and GID of the created volume
Bugfixes
- Fixed a bug where the
podman startcommand would print container ID, instead of name, when starting containers given their name - Fixed a bug where named volumes with options did not properly detect issues with mounting the volume, leading to an inconsistent state (#4303)
- Fixed a bug where incorrect Seccomp profiles were used in containers generated by
podman play kube - Fixed a bug where processes started by
podman execwould have the wrong SELinux label in some circumstances (#4361) - Fixed a bug where error messages from
slirp4netnswould be lost - Fixed a bug where
podman run --network=$NAMEwould not throw an error in rootless Podman, where CNI networks are not supported - Fixed a bug where
podman network createwould throw confusing errors when trying to create a volume with a name that already exists - Fixed a bug where Podman would not error if the
systemdCGroup manager was specified, but systemd could not be contacted over DBus - Fixed a bug where image volumes were mounted
noexec(#4318) - Fixed a bug where the
podman statscommand required the name of a container to be given, instead of showing all containers when no container was specified (#4274) - Fixed a bug where the
podman volume inspectcommand would not show the options that named volumes were created with - Fixed a bug where custom storage configuration was not written to
storage.confat time of first creation for rootless Podman (#2659) - Fixed a bug where remote Podman did not support shell redirection of container output
Misc
- Updated vendored containers/image library to v5.0
- Initial support for images using manifest lists has been added, though commands for directly interacting with manifests are still missing
- Support for pushing to and pulling from OSTree has been removed due to deprecation in the containers/image library
- Rootless Podman no longer enables linger on systems with systemd as init by default. As such, containers will now be killed when the user who ran them logs out, unless linger is explicitly enabled using loginctl
- Podman will now check the version of
conmonthat is in use to ensure it is sufficient
1.6.2
Features
- Added a
--runtimeflag topodman system migrateto allow the OCI runtime for all containers to be reset, to ease transition to thecrunruntime on CGroups V2 systems untilruncgains full support - The
podman rmcommand can now remove containers in broken states which previously could not be removed - The
podman infocommand, when run without root, now shows information on UID and GID mappings in the rootless user namespace - Added
podman build --squash-allflag, which squashes all layers (including those of the base image) into one layer - The
--systemdflag topodman runandpodman createnow accepts a string argument and allows a new value,always, which forces systemd support without checking if the the container entrypoint is systemd
Bugfixes
- Fixed a bug where the
podman topcommand did not work on systems using CGroups V2 (#4192) - Fixed a bug where rootless Podman could double-close a file, leading to a panic
- Fixed a bug where rootless Podman could fail to retrieve some containers while refreshing the state
- Fixed a bug where
podman start --attach --sig-proxy=falsewould still proxy signals into the container - Fixed a bug where Podman would unconditionally use a non-default path for authentication credentials (
auth.json), breakingpodman loginintegration withskopeoand other tools using the containers/image library - Fixed a bug where
podman ps --format=jsonandpodman images --format=jsonwould displaynullwhen no results were returned, instead of valid JSON - Fixed a bug where
podman build --squashwas incorrectly squashing all layers into one, instead of only new layers - Fixed a bug where rootless Podman would allow volumes with options to be mounted (mounting volumes requires root), creating an inconsistent state where volumes reported as mounted but were not (#4248)
- Fixed a bug where volumes which failed to unmount could not be removed (#4247)
- Fixed a bug where Podman incorrectly handled some errors relating to unmounted or missing containers in containers/storage
- Fixed a bug where
podman statswas broken on systems running CGroups V2 when run rootless (#4268) - Fixed a bug where the
podman startcommand would print the short container ID, instead of the full ID - Fixed a bug where containers created with an OCI runtime that is no longer available (uninstalled or removed from the config file) would not appear in
podman psand could not be removed viapodman rm - Fixed a bug where containers restored via
podman container restore --importwould retain the CGroup path of the original container, even if their container ID changed; thus, multiple containers created from the same checkpoint would all share the same CGroup
Misc
- The default PID limit for containers is now set to 4096. It can be adjusted back to the old default (unlimited) by passing
--pids-limit 0topodman createandpodman run - The
podman start --attachcommand now automatically attachesSTDINif the container was created with-i - The
podman network createcommand now validates network names using the same regular expression as container and pod names - The
--systemdflag topodman runandpodman createwill now only enable systemd mode when the binary being run inside the container is/sbin/init,/usr/sbin/init, or ends insystemd(previously detected any path ending ininitorsystemd) - Updated vendored Buildah to 1.11.3
- Updated vendored containers/storage to 1.13.5
- Updated vendored containers/image to 4.0.1
1.6.1
Bugfixes
- Fixed a bug where rootless Podman on systems using CGroups V2 would not function with the
cgroupfsCGroups manager - Fixed a bug where rootless Podman could not correctly identify the DBus session address, causing containers to fail to start (#4162)
- Fixed a bug where rootless Podman with
slirp4netnsnetworking would fail to start containers due to mount leaks
1.6.0
Features
- The
podman network create,podman network rm,podman network inspect, andpodman network lscommands have been added to manage CNI networks used by Podman - The
podman volume createcommand can now create and mount volumes with options, allowing volumes backed by NFS, tmpfs, and many other filesystems - Podman can now run containers without CGroups for better integration with systemd by using the
--cgroups=disabledflag withpodman createandpodman run. This is presently only supported with thecrunOCI runtime - The
podman volume rmandpodman volume inspectcommands can now refer to volumes by an unambiguous partial name, in addition to full name (e.g.podman volume rm myvolto remove a volume namedmyvolume) (#3891) - The
podman runandpodman createcommands now support the--pullflag to allow forced re-pulling of images (#3734) - Mounting volumes into a container using
--volume,--mount, and--tmpfsnow allows thesuid,dev, andexecmount options (the inverse ofnosuid,nodev,noexec) (#3819) - Mounting volumes into a container using
--mountnow allows therelabel=Zandrelabel=zoptions to relabel mounts. - The
podman pushcommand now supports the--digestfileoption to save a file containing the pushed digest - Pods can now have their hostname set via
podman pod create --hostnameor providing Pod YAML with a hostname set topodman play kube(#3732) - The
podman image signcommand now supports the--cert-dirflag - The
podman runandpodman createcommands now support the--security-opt label=filetype:$LABELflag to set the SELinux label for container files - The remote Podman client now supports healthchecks
Bugfixes
- Fixed a bug where remote
podman pullwould panic if a Varlink connection was not available (#4013) - Fixed a bug where
podman execwould not properly set terminal size when creating a new exec session (#3903) - Fixed a bug where
podman execwould not clean up socket symlinks on the host (#3962) - Fixed a bug where Podman could not run systemd in containers that created a CGroup namespace
- Fixed a bug where
podman prune -awould attempt to prune images used by Buildah and CRI-O, causing errors (#3983) - Fixed a bug where improper permissions on the
~/.configdirectory could cause rootless Podman to use an incorrect directory for storing some files - Fixed a bug where the bash completions for
podman importthrew errors - Fixed a bug where Podman volumes created with
podman volume createwould not copy the contents of their mountpoint the first time they were mounted into a container (#3945) - Fixed a bug where rootless Podman could not run
podman execwhen the container was not run inside a CGroup owned by the user (#3937) - Fixed a bug where
podman play kubewould panic when given Pod YAML without asecurityContext(#3956) - Fixed a bug where Podman would place files incorrectly when
storage.confconfiguration items were set to the empty string (#3952) - Fixed a bug where
podman builddid not correctly inherit Podman's CGroup configuration, causing crashed on CGroups V2 systems (#3938) - Fixed a bug where
podman cpwould improperly copy files on the host when copying a symlink in the container that included a glob operator (#3829) - Fixed a bug where remote
podman run --rmwould exit before the container was completely removed, allowing race conditions when removing container resources (#3870) - Fixed a bug where rootless Podman would not properly handle changes to
/etc/subuidand/etc/subgidafter a container was launched - Fixed a bug where rootless Podman could not include some devices in a container using the
--deviceflag (#3905) - Fixed a bug where the
commitVarlink API would segfault if provided incorrect arguments (#3897) - Fixed a bug where temporary files were not properly cleaned up after a build using remote Podman (#3869)
- Fixed a bug where
podman remote cpcrashed instead of reporting it was not yet supported (#3861) - Fixed a bug where
podman execwould run as the wrong user when execing into a container was started from an image with DockerfileUSER(or a user specified viapodman run --user) (#3838) - Fixed a bug where images pulled using the
oci:transport would be improperly named - Fixed a bug where
podman varlinkwould hang when managed by systemd due to SD_NOTIFY support conflicting with Varlink (#3572) - Fixed a bug where mounts to the same destination would sometimes not trigger a conflict, causing a race as to which was actually mounted
- Fixed a bug where
podman exec --preserve-fdscaused Podman to hang (#4020) - Fixed a bug where removing an unmounted container that was unmounted might sometimes not properly clean up the container (#4033)
- Fixed a bug where the Varlink server would freeze when run in a systemd unit file (#4005)
- Fixed a bug where Podman would not properly set the
$HOMEenvironment variable when the OCI runtime did not set it - Fixed a bug where rootless Podman would incorrectly print warning messages when an OCI runtime was not found (#4012)
- Fixed a bug where named volumes would conflict with, instead of overriding,
tmpfsfilesystems added by the--read-only-tmpfsflag topodman createandpodman run - Fixed a bug where
podman cpwould incorrectly make the target directory when copying to a symlink which pointed to a nonexistent directory (#3894) - Fixed a bug where remote Podman would incorrectly read
STDINwhen the-iflag was not set (#4095) - Fixed a bug where
podman play kubewould create an empty pod when given an unsupported YAML type (#4093) - Fixed a bug where
podman import --changeimproperly parsedCMD(#4000)
Misc
- Significant changes were made to Podman volumes in this release. If you have pre-existing volumes, it is strongly recommended to run
podman system renumberafter upgrading. - Version 0.8.1 or greater of the CNI Plugins is now required for Podman
- Version 2.0.1 or greater of Conmon is strongly recommended
- Updated vendored Buildah to v1.11.2
- Updated vendored containers/storage library to v1.13.4
- Improved error messages when trying to create a pod with no name via
podman play kube - Improved error messages when trying to run
podman pauseorpodman statson a rootless container on a system without CGroups V2 enabled TMPDIRhas been set to/var/tmpby default to better handle large temporary filespodman waithas been optimized to detect stopped containers more rapidly- Podman containers now include a
ContainerManagerannotation indicating they were created bylibpod - The
podman infocommand now includes information aboutslirp4netnsandfuse-overlayfsif they are available - Podman no longer sets a default size of 65kb for tmpfs filesystems
- The default Podman CNI network has been renamed in an attempt to prevent conflicts with CRI-O when both are run on the same system. This should only take effect on system restart
- The output of
podman volume inspecthas been more closely matched todocker volume inspect
1.5.1
Features
- The hostname of pods is now set to the pod's name
Bugfixes
- Fixed a bug where
podman runandpodman createdid not honor the--authfileoption (#3730) - Fixed a bug where containers restored with
podman container restore --importwould incorrectly duplicate the Conmon PID file of the original container - Fixed a bug where
podman buildignored the default OCI runtime configured inlibpod.conf - Fixed a bug where
podman run --rm(or force-removing any running container withpodman rm --force) were not retrieving the correct exit code (#3795) - Fixed a bug where Podman would exit with an error if any configured hooks directory was not present
- Fixed a bug where
podman inspectandpodman commitwould not use the correctCMDfor containers run withpodman play kube - Fixed a bug created pods when using rootless Podman and CGroups V2 (#3801)
- Fixed a bug where the
podman eventscommand with the--sinceor--untiloptions could take a very long time to complete
Misc
- Rootless Podman will now inherit OCI runtime configuration from the root configuration (#3781)
- Podman now properly sets a user agent while contacting registries (#3788)
1.5.0
Features
- Podman containers can now join the user namespaces of other containers with
--userns=container:$ID, or a user namespace at an arbitrary path with--userns=ns:$PATH - Rootless Podman can experimentally squash all UIDs and GIDs in an image to a single UID and GID (which does not require use of the
newuidmapandnewgidmapexecutables) by passing--storage-opt ignore_chown_errors - The
podman generate kubecommand now produces YAML for any bind mounts the container has created (#2303) - The
podman container restorecommand now features a new flag,--ignore-static-ip, that can be used with--importto import a single container with a static IP multiple times on the same host - Added the ability for
podman eventsto output JSON by specifying--format=json - If the OCI runtime or
conmonbinary cannot be found at the paths specified inlibpod.conf, Podman will now also search for them in the calling user's path - Added the ability to use
podman importwith URLs (#3609) - The
podman pscommand now supports filtering names using regular expressions (#3394) - Rootless Podman containers with
--privilegedset will now mount in all host devices that the user can access - The
podman createandpodman runcommands now support the--env-hostflag to forward all environment variables from the host into the container - Rootless Podman now supports healthchecks (#3523)
- The format of the
HostConfigportion of the output ofpodman inspecton containers has been improved and synced with Docker - Podman containers now support CGroup namespaces, and can create them by passing
--cgroupns=privatetopodman runorpodman create - The
podman createandpodman runcommands now support the--ulimit=hostflag, which uses any ulimits currently set on the host for the container - The
podman rmandpodman rmicommands now use different exit codes to indicate 'no such container' and 'container is running' errors - Support for CGroups V2 through the
crunOCI runtime has been greatly improved, allowing resource limits to be set for rootless containers when the CGroups V2 hierarchy is in use
Bugfixes
- Fixed a bug where a race condition could cause
podman restartto fail to start containers with ports - Fixed a bug where containers restored from a checkpoint would not properly report the time they were started at
- Fixed a bug where
podman searchwould return at most 25 results, even when the maximum number of results was set higher - Fixed a bug where
podman play kubewould not honor capabilities set in imported YAML (#3689) - Fixed a bug where
podman run --env, when passed a single key (to use the value from the host), would set the environment variable in the container even if it was not set on the host (#3648) - Fixed a bug where
podman commit --changeswould not properly set environment variables - Fixed a bug where Podman could segfault while working with images with no history
- Fixed a bug where
podman volume rmcould remove arbitrary volumes if given an ambiguous name (#3635) - Fixed a bug where
podman execinvocations leaked memory by not cleaning up files in tmpfs - Fixed a bug where the
--dnsand--net=containerflags topodman runandpodman createwere not mutually exclusive (#3553) - Fixed a bug where rootless Podman would be unable to run containers when less than 5 UIDs were available
- Fixed a bug where containers in pods could not be removed without removing the entire pod (#3556)
- Fixed a bug where Podman would not properly clean up all CGroup controllers for created cgroups when using the
cgroupfsCGroup driver - Fixed a bug where Podman containers did not properly clean up files in tmpfs, resulting in a memory leak as containers stopped
- Fixed a bug where healthchecks from images would not use default settings for interval, retries, timeout, and start period when they were not provided by the image (#3525)
- Fixed a bug where healthchecks using the
HEALTHCHECK CMDformat where not properly supported (#3507) - Fixed a bug where volume mounts using relative source paths would not be properly resolved (#3504)
- Fixed a bug where
podman rundid not use authorization credentials when a custom path was specified (#3524) - Fixed a bug where containers checkpointed with
podman container checkpointdid not properly set their finished time - Fixed a bug where running
podman inspecton any container not created withpodman runorpodman create(for example, pod infra containers) would result in a segfault (#3500) - Fixed a bug where healthcheck flags for
podman createandpodman runwere incorrectly named (#3455) - Fixed a bug where Podman commands would fail to find targets if a partial ID was specified that was ambiguous between a container and pod (#3487)
- Fixed a bug where restored containers would not have the correct SELinux label
- Fixed a bug where Varlink endpoints were not working properly if
morewas not correctly specified - Fixed a bug where the Varlink PullImage endpoint would crash if an error occurred (#3715)
- Fixed a bug where the
--mountflag topodman createandpodman rundid not allow boolean arguments for itsroandrwoptions (#2980) - Fixed a bug where pods did not properly share the UTS namespace, resulting in incorrect behavior from some utilities which rely on hostname (#3547)
- Fixed a bug where Podman would unconditionally append
ENTRYPOINTtoCMDduringpodman commit(and when reportingCMDinpodman inspect) (#3708) - Fixed a bug where
podman eventswith thejournaldevents backend would incorrectly print 6 previous events when only new events were requested (#3616) - Fixed a bug where
podman portwould exit prematurely when a port number was specified (#3747) - Fixed a bug where passing
.as an argument to the--dns-searchflag topodman createandpodman runwas not properly clearing DNS search domains in the container
Misc
- Updated vendored Buildah to v1.10.1
- Updated vendored containers/image to v3.0.2
- Updated vendored containers/storage to v1.13.1
- Podman now requires conmon v2.0.0 or higher
- The
podman infocommand now displays the events logger being in use - The
podman inspectcommand on containers now includes the ID of the pod a container has joined and the PID of the container's conmon process - The
-vshort flag forpodman --versionhas been re-added - Error messages from
podman pullshould be significantly clearer - The
podman execcommand is now available in the remote client
1.4.4
Bugfixes
- Fixed a bug where rootless Podman would attempt to use the entire root configuration if no rootless configuration was present for the user, breaking rootless Podman for new installations
- Fixed a bug where rootless Podman's pause process would block SIGTERM, preventing graceful system shutdown and hanging until the system's init send SIGKILL
- Fixed a bug where running Podman as root with
sudo -Ewould not work after running rootless Podman at least once - Fixed a bug where options for
tmpfsvolumes added with the--tmpfsflag were being ignored - Fixed a bug where images with no layers could not properly be displayed and removed by Podman
- Fixed a bug where locks were not properly freed on failure to create a container or pod
Misc
- Updated containers/storage to v1.12.13
1.4.3
Features
- Podman now has greatly improved support for containers using multiple OCI runtimes. Containers now remember if they were created with a different runtime using
--runtimeand will always use that runtime - The
cachedanddelegatedoptions for volume mounts are now allowed for Docker compatibility (#3340) - The
podman diffcommand now supports the--latestflag
Bugfixes
- Fixed a bug where
podman cpon a single file would create a directory at the target and place the file in it (#3384) - Fixed a bug where
podman inspect --format '{{.Mounts}}'would print a hexadecimal address instead of a container's mounts - Fixed a bug where rootless Podman would not add an entry to container's
/etc/hostsfiles for their own hostname (#3405) - Fixed a bug where
podman ps --syncwould segfault (#3411) - Fixed a bug where
podman generate kubewould produce an invalid ports configuration (#3408)
Misc
- Podman now performs much better on systems with heavy I/O load
- The
--cgroup-managerflag topodmannow shows the correct default setting in help if the default was overridden bylibpod.conf - For backwards compatibility, setting
--log-driver=json-fileinpodman runis now supported as an alias for--log-driver=k8s-file. This is considered deprecated, andjson-filewill be moved to a new implementation in the future (#3363) - Podman's default
libpod.conffile now allows the crun OCI runtime to be used if it is installed
1.4.2
Bugfixes
- Fixed a bug where Podman could not run containers using an older version of Systemd as init (#3295)
Misc
- Updated vendored Buildah to v1.9.0 to resolve a critical bug with Dockerfile
RUNinstructions - The error message for running
podman killon containers that are not running has been improved - The Podman remote client can now log to a file if syslog is not available
1.4.1
Features
- The
podman execcommand now sets its error code differently based on whether the container does not exist, and the command in the container does not exist - The
podman inspectcommand on containers now outputs Mounts JSON that matches that ofdocker inspect, only including user-specified volumes and differentiating bind mounts and named volumes - The
podman inspectcommand now reports the path to a container's OCI spec with theOCIConfigPathkey (only included when the container is initialized or running) - The
podman run --mountcommand now supports thebind-nonrecursiveoption for bind mounts (#3314)
Bugfixes
- Fixed a bug where
podman play kubewould fail to create containers due to an unspecified log driver - Fixed a bug where Podman would fail to build with musl libc (#3284)
- Fixed a bug where rootless Podman using
slirp4netnsnetworking in an environment with no nameservers on the host other than localhost would result in nonfunctional networking (#3277) - Fixed a bug where
podman importwould not properly set environment variables, discarding their values and retaining only keys - Fixed a bug where Podman would fail to run when built with Apparmor support but run on systems without the Apparmor kernel module loaded (#3331)
Misc
- Remote Podman will now default the username it uses to log in to remote systems to the username of the current user
- Podman now uses JSON logging with OCI runtimes that support it, allowing for better error reporting
- Updated vendored Buildah to v1.8.4
- Updated vendored containers/image to v2.0
1.4.0
Features
- The
podman checkpointandpodman restorecommands can now be used to migrate containers between Podman installations on different systems (#1618) - The
podman cpcommand now supports apauseflag to pause containers while copying into them - The remote client now supports a configuration file for pre-configuring connections to remote Podman installations
Bugfixes
- Fixed CVE-2019-10152 - The
podman cpcommand improperly dereferenced symlinks in host context - Fixed a bug where
podman commitcould improperly set environment variables that contained=characters (#3132) - Fixed a bug where rootless Podman would sometimes fail to start containers with forwarded ports (#2942)
- Fixed a bug where
podman versionon the remote client could segfault (#3145) - Fixed a bug where
podman container runlabelwould use/proc/self/exeinstead of the path of the Podman command when printing the command being executed - Fixed a bug where filtering images by label did not work (#3163)
- Fixed a bug where specifying a bing mount or tmpfs mount over an image volume would cause a container to be unable to start (#3174)
- Fixed a bug where
podman generate kubedid not work with containers with named volumes - Fixed a bug where rootless Podman would receive
permission deniederrors accessingconmon.pid(#3187) - Fixed a bug where
podman cpwith a folder specified as target would replace the folder, as opposed to copying into it (#3184) - Fixed a bug where rootless Podman commands could double-unlock a lock, causing a crash (#3207)
- Fixed a bug where Podman incorrectly set
tmpcopyupon/dev/mounts, causing errors when using the Kata containers runtime (#3229) - Fixed a bug where
podman execwould fail on older kernels (#2968)
Misc
- The
podman inspectcommand on containers now uses theIdkey (instead ofID) for the container's ID, for better compatibility with the output ofdocker inspect - The
podman commitcommand is now usable with the Podman remote client - The
--signature-policyflag (used with several image-related commands) has been deprecated - The
podman unsharecommand now defines two environment variables in the spawned shell:CONTAINERS_RUNROOTandCONTAINERS_GRAPHROOT, pointing to temporary and permanent storage for rootless containers - Updated vendored containers/storage and containers/image libraries with numerous bugfixes
- Updated vendored Buildah to v1.8.3
- Podman now requires Conmon v0.2.0
- The
podman cpcommand is now aliased aspodman container cp - Rootless Podman will now default
init_pathusing root Podman's configuration files (/etc/containers/libpod.confand/usr/share/containers/libpod.conf) if not overridden in the rootless configuration
1.3.1
Features
- The
podman cpcommand can now read input redirected toSTDIN, and output toSTDOUTinstead of a file, using-instead of an argument. - The Podman remote client now displays version information from both the client and server in
podman version - The
podman unsharecommand has been added, allowing easy entry into the user namespace set up by rootless Podman (allowing the removal of files created by rootless Podman, among other things)
Bugfixes
- Fixed a bug where Podman containers with the
--rmflag were removing created volumes when they were automatically removed (#3071) - Fixed a bug where container and pod locks were incorrectly marked as released after a system reboot, causing errors on container and pod removal (#2900)
- Fixed a bug where Podman pods could not be removed if any container in the pod encountered an error during removal (#3088)
- Fixed a bug where Podman pods run with the
cgroupfsCGroup driver would encounter a race condition during removal, potentially failing to remove the pod CGroup - Fixed a bug where the
podman container checkpointandpodman container restorecommands were not visible in the remote client - Fixed a bug where
podman remote ps --nswould not print the container's namespaces (#2938) - Fixed a bug where removing stopped containers with healthchecks could cause an error
- Fixed a bug where the default
libpod.conffile was causing parsing errors (#3095) - Fixed a bug where pod locks were not being freed when pods were removed, potentially leading to lock exhaustion
- Fixed a bug where 'podman run' with SD_NOTIFY set could, on short-running containers, create an inconsistent state rendering the container unusable
Misc
- The remote Podman client now uses the Varlink bridge to establish remote connections by default
1.3.0
Features
- Podman now supports container restart policies! The
--restartflag onpodman createandpodman runallows containers to be restarted after they exit. Please note that Podman cannot restart containers after a system reboot - for that, see our next feature - Podman
podman generate systemdcommand was added to generate systemd unit files for managing Podman containers - The
podman runlabelcommand now allows a$GLOBAL_OPTSvariable, which will be populated by global options passed to thepodman runlabelcommand, allowing custom storage configurations to be passed into containers run withrunlabel(#2399) - The
podman play kubecommand now allowsFileandFileOrCreatevolumes - The
podman pod prunecommand was added to prune unused pods - Added the
podman system migratecommand to migrate containers using older configurations to allow their use by newer Libpod versions (#2935) - Podman containers now forward proxy-related environment variables from the host into the container with the
--http-proxyflag (enabled by default) - Read-only Podman containers can now create tmpfs filesystems on
/tmp,/var/tmp, and/runwith the--read-only-tmpfsflag (enabled by default) - The
podman initcommand was added, performing all container pre-start tasks without starting the container to allow pre-run debugging
Bugfixes
- Fixed a bug where
podman cpwould not copy folders (#2836) - Fixed a bug where Podman would panic when the Varlink API attempted too pull a non-existent image (#2860)
- Fixed a bug where
podman rmisometimes did not produce an event when images were deleted - Fixed a bug where Podman would panic when the Varlink API passed improperly-formatted options when attempting to build (#2869)
- Fixed a bug where
podman imageswould not print a header if no images were present (#2877) - Fixed a bug where the
podman imagescommand with--filter dangling=falsewould incorrectly print dangling images instead of images which are not dangling (#2884) - Fixed a bug where rootless Podman would panic when any command was run after the system was rebooted (#2894)
- Fixed a bug where Podman containers in user namespaces would include undesired directories from the host in
/sys/kernel - Fixed a bug where
podman createwould panic when trying to create a container whose name already existed - Fixed a bug where
podman pullwould exit 0 on failing to pull an image (#2785) - Fixed a bug where
podman pullwould not properly print the cause of errors that occurred (#2710) - Fixed a bug where rootless Podman commands were not properly suspended via
ctrl-zin a shell (#2775) - Fixed a bug where Podman would error when cleaning up containers when some container mountpoints in
/sys/were cleaned up already by the closing of the mount namespace - Fixed a bug where
podman play kubewas not including environment variables from the image run (#2930) - Fixed a bug where
podman play kubewould not properly clean up partially-created pods when encountering an error - Fixed a bug where
podman commitwith the--changeflag improperly setCMDwhen a multipart value was provided (#2951) - Fixed a bug where the
--mountflag topodman createandpodman rundid not properly validate its arguments, causing Podman to panic - Fixed a bug where conflicts between mounts created by the
--mount,--volume, and--tmpfsflags were not properly reported - Fixed a bug where the
--mountflag could not be used with named volumes - Fixed a bug where the
--mountflag did not properly set options for created tmpfs filesystems - Fixed a bug where rootless Podman could close too many file descriptors, causing Podman to panic (#2964)
- Fixed a bug where
podman logoutwould not print an error when the login was established bydocker login(#2735) - Fixed a bug where
podman stopwould error when not all containers were running (#2993) - Fixed a bug where
podman pullwould fail to pull images by shortname if they were not present in thedocker.ioregistry - Fixed a bug where
podman loginwould error when credentials were not present if a credential helper was configured (#1675) - Fixed a bug where the
podman system renumbercommand and Podman post-reboot state refreshes would not create events - Fixed a bug where the
podman topcommand was not compatible withdocker topsyntax
Misc
- Updated vendored Buildah to v1.8.2
- Updated vendored containers/storage to v1.12.6
- Updated vendored containers/psgo to v1.2.1
- Updated to sysregistriesv2, including slight changes to the
registries.confconfig file - Rootless Podman now places all containers within a single user namespace. This change will not take effect for existing containers until containers are restarted, and containers that are not restarted may not be fully usable
- The
podman run,podman create,podman start,podman restart,podman attach,podman stop,podman port,podman rm,podman top,podman image tree,podman generate kube,podman umount,podman container checkpoint, andpodman container restorecommands are now available in the remote client - The Podman remote client now builds on Windows
- A major refactor of volumes created using the
podman volumecommand was performed. There should be no major user-facing changes, but downgrading from Podman 1.3 to previous versions may render some volumes unable to be removed. - The
podman eventscommand now logs events to journald by default. The old behavior (log to file) can be configured in podman.conf via theevents_loggeroption - The
podman commitcommand, in versions 1.2 and earlier, included all volumes mounted into the container as image volumes in the committed image. This behavior was incorrect and has been disabled by default; it can be re-enabled with the--include-volumesflag
1.2.0
Features
- Podman now supports image healthchecks! The
podman healthcheck runcommand was added to manually run healthchecks, and the status of a running healthcheck can be viewed viapodman inspect - The
podman eventscommand was added to show a stream of significant events - The
podman pscommand now supports a--watchflag that will refresh its output on a given interval - The
podman image treecommand was added to show a tree representation of an image's layers - The
podman logscommand can now display logs for multiple containers at the same time (#2219) - The
podman execcommand can now pass file descriptors to the process being executed in the container via the--preserve-fdsoption (#2372) - The
podman imagescommand can now filter images by reference (#2266) - The
podman system dfcommand was added to show disk usage by Podman - The
--add-hostoption can now be used by containers sharing a network namespace (#2504) - The
podman cpcommand now has an--extractoption to extract the contents of a Tar archive and copy them into the container, instead of copying the archive itself (#2520) - Podman now allows manually specifying the path of the
slirp4netnsbinary for rootless networking via the--network-cmd-pathflag (#2506) - Rootless Podman can now be used with a single UID and GID, without requiring a full 65536 UIDs/GIDs to be allocated in
/etc/subuidand/etc/subgid(#1651) - The
podman runlabelcommand now supports the--replaceoption to replace containers using the name requested - Infrastructure containers for Podman pods will now attempt to use the image's
CMDandENTRYPOINTinstead of a fixed command (#2182) - The
podman play kubecommand now supports theHostPathandVolumeMountsYAML fields (#2536) - Added support to disable creation of
resolv.confor/etc/hostsin containers by specifying--dns=noneand--no-hosts, respectively, topodman runandpodman create(#2744) - The
podman versioncommand now supports the{{ json . }}template (which outputs JSON) - Podman can now forward ports using the SCTP protocol
Bugfixes
- Fixed a bug where directories could not be passed to
podman run --device(#2380) - Fixed a bug where rootless Podman with the
--configflag specified would not use appropriate defaults (#2510) - Fixed a bug where rootless Podman containers using the host network (
--net=host) would show SELinux as enabled in the container when there were no privileges to use it - Fixed a bug where importing very large images from
STDINcould cause Podman to run out of memory - Fixed a bug where some images would fail to run due to symlinks in paths where Podman would normally mount tmpfs filesystems
- Fixed a bug where
podman play kubewould sometimes segfault (#2209) - Fixed a bug where
podman runlabeldid not respect the$PWDvariable (#2171) - Fixed a bug where error messages from refreshing the state in rootless Podman were not properly displayed (#2584)
- Fixed a bug where rootless
podman buildcould not access DNS servers whenslirp4netnswas in use (#2572) - Fixed a bug where rootless
podman stopandpodman rmwould not work on containers which specified a non-root user (#2577) - Fixed a bug where container labels whose values contained commas were incorrectly parsed and caused errors creating containers (#2574)
- Fixed a bug where calling Podman with a nonexistent command would exit 0, instead of with an appropriate error code (#2530)
- Fixed a bug where rootless
podman execwould fail when--userwas specified (#2566) - Fixed a bug where, when a container had a name that was a fragment of another container's ID, Podman would refuse to operate on the first container by name
- Fixed a bug where
podman pod createwould fail if a pod shared no namespaces but created an infra container - Fixed a bug where rootless Podman failed on the S390 and CRIS architectures
- Fixed a bug where
podman rmwould exit 0 if no containers specified were found (#2539) - Fixed a bug where
podman runwould fail to enable networking for containers with additional CNI networks specified (#2795) - Fixed a bug where the
podman imagescommand on the remote client was not displaying digests (#2756) - Fixed a bug where Podman was unable to clean up mounts in containers using user namespaces
- Fixed a bug where
podman image savewould, when told to save to a path that exists, return an error, but still delete the file at the given path - Fixed a bug where specifying environment variables containing commas with
--envwould cause parsing errors (#2712) - Fixed a bug where
podman umountwould not error if called with no arguments - Fixed a bug where the user and environment variables specified by the image used in containers created by
podman create kubewas being ignored (#2665) - Fixed a bug where the
podman pod inspectcommand would segfault if not given an argument (#2681) - Fixed a bug where rootless
podman pod topwould fail (#2682) - Fixed a bug where the
podman loadcommand would not error if an input file is not specified and a file was not redirected toSTDIN - Fixed a bug where rootless
podmancould fail if global configuration was altered via flag (for example,--root,--runroot,--storage-driver) - Fixed a bug where forwarded ports that were part of a range (e.g. 20-30) were displayed individually by
podman ps, as opposed to together as a range (#1358) - Fixed a bug where
podman run --rootfscould panic (#2654) - Fixed a bug where
podman buildwould fail if options were specified after the directory to build (#2636) - Fixed a bug where image volumes made by
podman createandpodman runwould have incorrect permissions (#2634) - Fixed a bug where rootless containers were not using the containers/image blob cache, leading to slower image pulls
- Fixed a bug where the
podman image inspectcommand incorrectly allowed the--latest,--type, and--sizeoptions
Misc
- Updated Buildah to v1.7.2
- Updated
psgolibrary to v1.2, featuring greatly improved safety during concurrent use - The
podman eventscommand may not show all activity regarding images, as only Podman was instrumented; images created, deleted, or pulled by CRI-O or Buildah will not be shown inpodman events - The
podman pod topandpodman pod statscommands are now usable with the Podman remote client - The
podman killandpodman waitcommands are now usable with the Podman remote client - Removed the unused
restartingstate and mappedstopped(also unused) toexitedinpodman ps --filter status - Podman container, pod, and volume names may now contain the
.(period) character
1.1.2
Bugfixes
- Fixed a bug where the
podman image list,podman image rm, andpodman container listhad broken global storage options - Fixed a bug where the
--labeloption topodman createandpodman runwas missing the-lalias - Fixed a bug where running Podman with the
--configflag would not set an appropriate default value fortmp_dir(#2408) - Fixed a bug where the
podman logscommand with the--timestampsflag produced unreadable output (#2500) - Fixed a bug where the
podman cpcommand would automatically extract.tarfiles copied into the container (#2509)
Misc
- The
podman container stopcommand is now usable with the Podman remote client
1.1.1
Bugfixes
- Fixed a bug where
podman container restorewas erroneously available aspodman restore(#2191) - Fixed a bug where the
volume_pathoption inlibpod.confwas not being respected - Fixed a bug where Podman failed to build when the
varlinktag was not present (#2459) - Fixed a bug where the
podman image loadcommand was listed twice in help text - Fixed a bug where the
podman image signcommand was also listed aspodman sign - Fixed a bug where the
podman image listcommand incorrectly had animagealias - Fixed a bug where the
podman imagescommand incorrectly hadlsandlistaliases - Fixed a bug where the
podman image rmcommand was being displayed aspodman image rmi - Fixed a bug where the
podman createcommand would attempt to parse arguments meant for the container - Fixed a bug where the combination of FIPS mode and user namespaces resulted in permissions errors
- Fixed a bug where the
--timealias for--timeoutfor thepodman restartandpodman stopcommands did not function - Fixed a bug where the default stop timeout for newly-created containers was being set to 0 seconds (resulting in an immediate SIGKILL on running
podman stop) - Fixed a bug where the output format of
podman portwas incorrect, printing full container ID instead of truncated ID - Fixed a bug where the
podman container listcommand did not exist - Fixed a bug where
podman buildcould not build a container from images tagged locally that did not exist in a registry (#2469) - Fixed a bug where some Podman commands that accept no arguments would not error when provided arguments
- Fixed a bug where
podman play kubecould not handle cases where a pod and a container shared a name
Misc
- Usage text for many commands was greatly improved
- Major cleanups were made to Podman manpages, ensuring that command lists are accurate
- Greatly improved debugging output when the
newuidmapandnewgidmapbinaries fail when using rootless Podman - The
-salias for the global--storage-driveroption has been removed - The
podman container refreshcommand has been deprecated, as its intended use case is no longer relevant. The command has been hidden and manpages deleted. It will be removed in a future release - The
podman container runlabelcommand will now pull images not available locally even without the--pulloption. The--pulloption has been deprecated - The
podman container checkpointandpodman container restorecommands are now only available on OCI runtimes where they are supported (e.g.runc)
1.1.0
Features
- Added
--latestand--allflags topodman mountandpodman umount - Rootless Podman can now forward ports into containers (using the same
-pand-Pflags as root Podman) - Rootless Podman will now pull some configuration options (for example, OCI runtime path) from the default root
libpod.confif they are not explicitly set in the user's ownlibpod.conf(#2174) - Added an alias
-ffor the--formatflag of thepodman infoandpodman versioncommands - Added an alias
-sfor the--sizeflag of thepodman inspectcommand - Added the
podman system infoandpodman system prunecommands - Added the
podman cpcommand to copy files between containers and the host (#613) - Added the
--password-stdinflag topodman login - Added the
--all-tagsflag topodman pull - The
--rmand--detachflags can now be used together withpodman run - The
podman startandpodman runcommands for containers in pods will now start dependency containers if they are stopped - Added the
podman system renumbercommand to handle lock changes - The
--net=hostand--dnsflags forpodman runandpodman createno longer conflict - Podman now handles mounting the shared /etc/resolv.conf from network namespaces created by
ip netns addwhen they are passed in viapodman run --net=ns:
Bugfixes
- Fixed a bug with
podman inspectwhere different information would be returned when the container was running versus when it was stopped - Fixed a bug where errors in Go templates passed to
podman inspectwere silently ignored instead of reported to the user (#2159) - Fixed a bug where rootless Podman with
--pid=hostcontainers was incorrectly masking paths in/proc - Fixed a bug where full errors starting rootless
Podmanwere not reported when a refresh was requested - Fixed a bug where Podman would override the config file-specified storage driver with the driver the backing database was created with without warning users
- Fixed a bug where
podman prunewould prune all images not in use by a container, as opposed to only untagged images, by default (#2192) - Fixed a bug where
podman create --quietandpodman run --quietwere not properly suppressing output - Fixed a bug where the
tablekeyword in Go template output ofpodman pswas not working (#2221) - Fixed a bug where
podman inspecton images pulled by digest would double-print@sha256in output when printing digests (#2086) - Fixed a bug where
podman container runlabelwill return a non-0 exit code if the label does not exist - Fixed a bug where container state was always reset to Created after a reboot (#1703)
- Fixed a bug where
/dev/ptswas unconditionally overridden in rootless Podman, which was unnecessary except in very specific cases - Fixed a bug where Podman run as root was ignoring some options in
/etc/containers/storage.conf(#2217) - Fixed a bug where Podman cleanup processes were not being given the proper OCI runtime path if a custom one was specified
- Fixed a bug where
podman images --filter dangling=truewould crash if no dangling images were present (#2246) - Fixed a bug where
podman ps --format "{{.Mounts}}"would not display a container's mounts (#2238) - Fixed a bug where
podman pod statswas ignoring Go templates specified by--format(#2258) - Fixed a bug where
podman generate kubewould fail on containers with--userspecified (#2304) - Fixed a bug where
podman imagesdisplayed incorrect output for images pulled by digest (#2175) - Fixed a bug where
podman portandpodman psdid not properly display ports if the container joined a network namespace from a pod or another container (#846) - Fixed a bug where detaching from a container using the detach keys would cause Podman to hang until the container exited
- Fixed a bug where
podman create --rmdid not work withpodman start --attach - Fixed a bug where invalid named volumes specified in
podman createandpodman runcould cause segfaults (#2301) - Fixed a bug where the
runtimefield inlibpod.confwas being ignored.runtimeis legacy and deprecated, but will continue to be respected for the foreseeable future - Fixed a bug where
podman loginwould sometimes report it logged in successfully when it did not - Fixed a bug where
podman pod createwould not error on receiving unused CLI argument - Fixed a bug where rootless
podman runwith the--podargument would fail if the pod was stopped - Fixed a bug where
podman imagesdid not print a trailing newline when not invoked on a TTY (#2388) - Fixed a bug where the
--runtimeoption was sometimes not overridinglibpod.conf - Fixed a bug where
podman pullandpodman runlabelwould sometimes exit with 0 when they should have exited with an error (#2405) - Fixed a bug where rootless
podman export -owould fail (#2381) - Fixed a bug where read-only volumes would fail in rootless Podman when the volume originated on a filesystem mounted
nosuid,nodev, ornoexec(#2312) - Fixed a bug where some files used by checkpoint and restore received improper SELinux labels (#2334)
- Fixed a bug where Podman's volume path was not properly changed when containers/storage changed location (#2395)
Misc
- Podman migrated to a new, shared memory locking model in this release. As part of this, if you are running Podman with pods or dependency containers (e.g.
--net=container:), you should run thepodman system renumbercommand to migrate your containers to the new model - please reference thepodman-system-renumber(1)man page for further details - Podman migrated to a new command-line parsing library, and the output format of help and usage text has somewhat changed as a result
- Updated Buildah to v1.7, picking up a number of bugfixes
- Updated containers/image library to v1.5, picking up a number of bugfixes and performance improvements to pushing images
- Updated containers/storage library to v1.10, picking up a number of bugfixes
- Work on the remote Podman client for interacting with Podman remotely over Varlink is progressing steadily, and many image and pod commands are supported - please see the Readme for details
- Added path masking to mounts with the
:zand:Zoptions, preventing users from accidentally performing an SELinux relabel of their entire home directory - The
podman container runlabelcommand will not pull an image if it does not contain the requested label - Many commands' usage information now includes examples
podman rmcan now delete containers in containers/storage, which can be used to resolve some situations where Podman fails to remove a container- The
podman searchcommand now searches multiple registries in parallel for improved performance - The
podman buildcommand now defaults--pull-alwaysto true - Containers which share a network namespace (for example, when in a pod) will now share /etc/hosts and /etc/resolv.conf between all containers in the pod, causing changes in one container to propagate to all containers sharing their networks
- The
podman rmandpodman rmicommands now return 1 (instead of 127) when all specified container or images are missing
1.0.0
Features
- The
podman execcommand now includes a--workdiroption to set working directory for the executed command - The
podman createandpodman runcommands now support the--initflag to use a minimal init process in the container - Added the
podman image signcommand to GPG sign images - The
podman run --deviceflag now accepts directories, and will added any device nodes in the directory to the container - Added the
podman play kubecommand to create pods and containers from Kubernetes pod YAML
Bugfixes
- Fixed a bug where passing
podman createorpodman runvolumes with an empty host or container path could cause a segfault - Fixed a bug where
storage.confwas sometimes ignored for rootless containers - Fixed a bug where Podman run as root would error if CAP_SYS_RESOURCE was not available
- Fixed a bug where Podman would fail to start containers after a system restart due to an out-of-date default Apparmor profile
- Fixed a bug where Podman's bash completions were not working
- Fixed a bug where
podman loginwould use existing login credentials even if new credentials were provided - Fixed a bug where Podman could create some directories with the wrong permissions, breaking containers with user namespaces
- Fixed a bug where
podman runlabelwas not properly setting container names when the--namewas specified - Fixed a bug where
podman runlabelsometimes included extra spaces in command output - Fixed a bug where
podman commitwas including invalid port numbers in created images when committing containers with published ports - Fixed a bug where
podman execwas not honoring the container's environment variables - Fixed a bug where
podman run --devicewould fail when a symlink to a device was specified - Fixed a bug where
podman buildwas not properly picking up OCI runtime paths specified inlibpod.conf - Fixed a bug where Podman would mount
/dev/shminto the container read-only for read-only containers (/dev/shmshould always be read-write) - Fixed a bug where Podman would ignore any mount whose container mountpoint was
/dev/shm - Fixed a bug where
podman exportdid not work with the defaultfuse-overlayfsstorage driver - Fixed a bug where
podman inspect -f '{{ json .Config }}'on images would not output anything (it now prints the image's config) - Fixed a bug where
podman rmi -fadisplayed the wrong error message when trying to remove images used by pod infra containers
Misc
- Rootless containers now unconditionally use postrun cleanup processes, ensuring resources are freed when the container stops
- A new version of Buildah is included for
podman build, featuring improved build speed and numerous bugfixes - Pulling images has been parallelized, allowing individual layers to be pulled in parallel
- The
podman start --attachcommand now defaults thesig-proxyoption totrue, matchingpodman createandpodman run - The
podman infocommand now prints the path of the configuration file controlling container storage - Added
podman listandpodman lsas aliases forpodman ps, andpodman container psandpodman container listas aliases forpodman container ls - Changed
podman generate kubeto generate Kubernetes service YAML in the same file as pod YAML, generating a single file instead of two - To improve compatibility with the Docker command line,
podman inspect -f '{{ json .ContainerConfig }}'on images is no longer valid; please usepodman inspect -f '{{ json .Config }}'instead
0.12.1.2
Bugfixes
- Fixed a bug where an empty path for named volumes could make it impossible to create containers
- Fixed a bug where containers using another container's network namespace would not also use the other container's /etc/hosts and /etc/resolv.conf
- Fixed a bug where containers with
--rmwhich failed to start were not removed - Fixed a potential race condition attempting to read
/etc/passwdinside containers
0.12.1.1
Features
- Added the
podman generate kubecommand to generate Kubernetes Pod and Service YAML for Podman containers and pods - The
podman pod stopflag now accepts a--timeoutflag to set the timeout for stopping containers in the pod
Bugfixes
- Fixed a bug where rootless Podman would fail to start if the default OCI hooks directory is not present
0.12.1
Features
- Rootless Podman now creates the storage.conf, libpod.conf, and mounts.conf configuration files automatically in
~/.config/containers/for ease of reconfiguration - The
podman pod createcommand can expose ports in the pod's network namespace, allowing public services to be created in pods - The
podman container checkpointcommand can now keep containers running after they are checkpointed with the--leave-runningflag - The
podman container checkpointandpodman container restorecommands now support the--tcp-establishedflag to checkpoint and restore containers with active TCP connections - The
podman versioncommand now has a--formatflag to produce machine-readable output - Added the
podman container exists,podman pod exists, andpodman image existscommands to easily check for a container/pod/image, respectively, by name or ID - The
podman ps --podflag now has a short alias,-p - The
podman rmiandpodman rmcommands now have a--pruneflag to prune unused images and containers, respectively - The
podman pscommand now has a--syncflag to force a sync of Podman's state against the OCI runtime, resolving some state desync errors - Added the
podman volumeset of commands for creating and managing local-only named volumes
Bugfixes
- Fixed a breaking change in rootless Podman where a change in default paths caused Podman to be unable to function on systems upgraded from 0.10.x or earlier
- Fixed a bug where
podman execwithout-twould still use a terminal if the container was created with-t - Fixed a bug where container root propagation was not being properly adjusted if volumes with root propagation set were mounted into the container
- Fixed a bug where
podman execcould hold the container lock longer than necessary waiting for an exited container - Fixed a bug where rootless containers using
slirp4netnsfor networking were reporting usingbridgenetworking inpodman inspect - Fixed a bug where
podman container restore -awas attempting to restore all containers, including created and running ones. It will now only attempt to restore stopped and exited containers - Fixed a bug where rootless Podman detached containers were not being properly cleaned up
- Fixed a bug where privileged containers were being mounted with incorrect (too restrictive) mount options such as
nodev - Fixed a bug where
podman stopwould throw an error attempting to stop a container that had already stopped - Fixed a bug where
NOTIFY_SOCKETwas not properly being passed into Podman containers - Fixed a bug where
/dev/shmwas not properly mounted in rootless containers - Fixed a bug where rootless Podman would set up the CNI plugins for networking (despite not using them in rootless mode), potentially causing
inotifyrelated errors - Fixed a bug where Podman would error on numeric GIDs that do not exist in the container's
/etc/group - Fixed a bug where containers in pods or created with
--net=containerwere not mounting/etc/resolv.confand/etc/hosts
Misc
podman buildnow defaults the--force-rmflag totrue- Improved
podman runlabelsupport for labels featuring arguments with whitespace - Containers without a network namespace will now use the host's
resolv.conf - The
slirp4netnsnetwork mode can now be used with containers running as root. It may be useful for container-in-container scenarios where the outer container does not have host networking set - Podman now uses
inotifyto wait for container exit files to be created, instead of polling. Ifinotifycannot be used, Podman will fall back to polling to check if the file has been created - The
podman logscommand now uses improved short-options handling, allowing its flags to be combined if desired (for example,podman logs -lfinstead ofpodman logs -l -f) - Hardcoded OCI hooks directories used by Podman are now deprecated; they should instead be coded into the
libpod.confconfiguration file. They can be specified as an array viahooks_dir
0.11.1.1
Bugfixes
- Fixed a bug where Podman was not correctly adding firewall rules for containers, preventing them from accessing the network
- Fixed a bug where full error messages were being lost when creating containers with user namespaces
- Fixed a bug where container state was not properly updated if a failure occurred during network setup, which could cause mounts to be left behind when the container was removed
- Fixed a bug where
podman execcould time out on slower systems by increasing the relevant timeout
Misc
podman rm -fnow removes paused containers. As such,podman rm -afcompleting successfully guarantees all Podman containers have been removed- Added a field to
podman infoto show if Podman is being run as rootless - Made a small output format change to
podman images- image sizes now feature a space between number and unit (e.g.123 MBnow instead of123MB) - Vendored an updated version of
containers/storageto fix several bugs reported upstream
0.11.1
Features
- Added
--alland--latestflags topodman checkpointandpodman restore - Added
--max-workersflag to all Podman commands that support operating in parallel, allowing the maximum number of parallel workers used to be specified - Added
--allflag topodman restart
Bugfixes
- Fixed a bug where
podman port -lwould segfault if no containers were present - Fixed a bug where
podman stats -awould error if containers were present but not running - Fixed a bug where container status checks would sometimes leave zombie OCI runtime processes
- Fixed checkpoint and restore code to verify an appropriate version of
criuis being used - Fixed a bug where environment variables with no specified value (e.g.
-e FOO) caused errors (they are now added as empty) - Fixed a bug where rootless Podman would attempt to configure the system firewall, causing errors on some systems where iptables is not in the user's PATH
- Fixed a bug where rootless Podman was unable to successfully write the container ID to a file when
--cid-filewas specified topodman run - Fixed a bug where
podman unmountwould refuse to unmount a container if it was running (the unmount will now be deferred until the container stops) - Fixed a bug where rootless
podman attachwould fail to attach due to a too-long path name - Fixed a bug where
podman infowas not properly reporting the Git commit Podman was built from - Fixed a bug where
podman run --interactivewas not holding STDIN open when-aflag was specified - Fixed a bug where Podman with the
cgroupfsCGroup driver was sometimes not successfully removing pod CGroups - Fixed a bug where rootless Podman was unable to run systemd containers (note that this also requires an update to systemd)
- Fixed a bug where
podman runwith the--userflag would fail if the container image did not contain/etc/passwdor/etc/group
Misc
podman rm,podman restart,podman kill,podman pause, andpodman unpausenow operate in parallel, greatly improving speed when multiple containers are specifiedpodman create,podman run, andpodman pshave a number of improvements which should greatly increase their speed- Greatly improved performance and reduced memory utilization of container status checks, which should improve the speed of most Podman commands
- Improve ability of
podman runlabelto run commands that are not Podman - Podman containers with an IP address now add their hostnames to
/etc/hosts - Changed default location of temporary libpod files in rootless Podman
- Updated the default Podman seccomp profile
Compatibility
Several paths related to rootless Podman had their default values changed in this release. If paths were not hardcoded in libpod.conf, your system may lose track of running containers and believe they are newly-created.
0.10.1.3
Bugfixes
- Fixed a bug where
podman buildwould not work while any containers were running
0.10.1.2
Bugfixes
- Fixed cgroup mount for containers using systemd as init to work properly with the systemd cgroup manager
0.10.1.1
Features
- Added handling for running containers as users with numeric UIDs not present in the container's /etc/passwd. This allows getpwuid() to work inside these containers.
- Added support for the REGISTRY_AUTH_FILE environment variable, which specifies the location of credentials for registry login. This is supported by the
push,pull,login,logout,runlabel, andsearchcommands
Bugfixes
- Fixed handling for image volumes which are mounted on symlinks. The links are now resolved within the container, not on the host
- Fixed mounts for containers that use systemd as init to properly include all mounts required by systemd to function
Misc
- Updated vendored version of Buildah used to power
podman build
0.10.1
Features
- Added the
podman container checkpointandpodman container restorecommands to checkpoint and restore containers - Added the
podman container runlabelcommand to run containers based on commands contained in their images - Added the
podman create --ipandpodman run --ipflags to allow setting static IPs for containers - Added the
podman kill --allflag to send a signal to all running containers
Bugfixes
- Fixed Podman cleanup processes for detached containers to properly print debug information when
--syslogflag is specified - Fixed manpages for
podman createandpodman runto document existing--netflag as an alias for--network - Fixed issues with rootless Podman where specifying a single user mapping container was causing all Podman commands to hang
- Fixed an issue with rootless Podman not properly detecting when user namespaces were not enabled
- Fixed an issue where Podman user namespaces were not preserving file capabilities
- Fixed an issue where
resolv.confin container would unconditionally forward nameservers into the container, even localhost - Fixed containers to release resources in the OCI runtime immediately after exiting, improving compatibility with Kata containers
- Fixed OCI runtime handling to fix several issues when using gVisor as an OCI runtime
- Fixed SELinux relabel errors when starting containers after a system restart
- Fixed a crash when initializing hooks on containers running systemd as init
- Fixed an SELinux labelling issue with privileged containers
- Fixed rootless Podman to raise better errors when using CGroup resource limits, which are not currently compatible with rootless
- Fixed a crash when runc was used as the OCI runtime for containers running systemd as init
- Fixed SELinux labelling for containers run with
--security-opt label=disableto assign the correct label
Misc
- Changed flag ordering on all Podman commands to ensure flags are alphabetized
- Changed
podman stopto work in parallel when multiple containers are specified, greatly speeding up stop for containers that do not stop after SIGINT - Updated vendored version of Buildah used to power
podman build - Added version of vendored Buildah to
podman infoto better debug issues
0.9.3.1
Bugfixes
- Fixed a critical issue where SELinux contexts set on tmpfs volumes were causing runc crashes
0.9.3
Features
- Added a flag to
libpod.conf,label, to globally enable/disable SELinux labelling for libpod - Added
--mountflag topodman createandpodman runas a new, more explicit way of specifying volume mounts
Bugfixes
- Fixed a crash during container creation when an image had no names
- Fixed default rootfs mount propagation to for containers to match Docker
- Fixed permissions of
/procin containers - Fixed permissions of some default bind mounts (for example,
/etc/hosts) in read-only containers - Fixed
/dev/shmin--ipc=containerand--ipc=hostcontainers to use the correct SHM - Fixed rootless Podman to properly join the namespaces of other containers
- Fixed the output of
podman diffto not display some default changes that will not be committed - Fixed rootless to better handle cases where insufficient UIDs/GIDs are mapped into the container
0.9.2.1
Bugfixes
- Updated Buildah dependency to fix several bugs in
podman build
Misc
- Small performance improvement in image handling code to not recalculate digests
0.9.2
Features
- Added
--intervalflag topodman waitto determine the interval between checks for container status - Added a switch in
libpod.confto disable reserving ports for running containers. This lowers the safety of port allocations, but can significantly reduce memory usage. - Added ability to search all the contents of a registry if no image name is specified when using
podman search
Bugfixes
- Further fixes for sharing of UTS namespaces within pods
- Fixed a deadlock in containers/storage that could be caused by numerous parallel Podman processes.
- Fixed Podman running into open file limits when many ports are forwarded
- Fixed default mount propagation on volume mounts
- Fixed default mounts under /dev remaining if /dev is bind-mounted into the container
- Fixed rootless
podman createwith no command specified throwing an error
Misc
- Added
podman rm --volumesflag for compatibility with Docker. As Podman does not presently support named volumes, this does nothing for now, but provides improved compatibility with the Docker command line. - Improved error messages from
podman pull
Compatibility
- Podman is no longer being built by default with support for the Devicemapper storage driver. If you are using this storage driver, you should investigate switching to overlayfs.
0.9.1.1
Bugfixes
- Added support for configuring iptables and firewalld firewalls to allow container traffic. This should resolve numerous issues with network access in containers.
Note
It is recommended that you restart your system firewall after installing this release to clear any firewall rules created by older Podman versions. If port forwarding to containers does not work, it is recommended that you restart your system.
0.9.1
Features
- Added initial support for the
podman podcommand as non-root
Bugfixes
- Fixed regression where invalid Podman commands would still cause a clean exit
- Fixed
podman rmi --allto not error if no images are present on the system - Fixed parsing of container logs with
podman logsto properly handle CRI logging, fixing some issues with blank lines in logs - Fixed a bug creating pod cgroups using the systemd cgroup driver with systemd versions 239 and higher
- Fixed handling of volume mounts that overlapped with default container mounts (for example,
podman run -v /dev/:/dev) - Fixed sharing of UTS namespace in pods
Misc
- Added additional debug information when pulling images if
--log-level=debugis specified podman buildnow defaults to caching intermediate layers while building
0.8.5
Features
- Added the ability to add a multipart entrypoint with
podman run --entrypoint - Improved help text when invalid commands are specified
- Greatly improved support for containers which use systemd as init
Bugfixes
- Fixed several bugs with rootless
podman exec - Fixed rootless
podmanwith a symlinked storage directory crashing - Fixed bug with
podman psand multiple filters where the interface did not match Docker - Fixed handling of
resolv.confon the host to handle symlinks - Increased open file descriptor and process limits to match Docker and Buildah
- Fixed
podman run -hto specify the container's hostname (as it does in Docker) instead of printing help text - Fixed a bug with image shortname handling where repositories were incorrectly being treated as registries
- Fixed a bug where
podman waitwas busywaiting and consuming large amounts of CPU
0.8.4
Features
- Added the
podman pod topcommand - Added the ability to easily share namespaces within a pod
- Added a pod statistics endpoint to the Varlink API
- Added information on container capabilities to the output of
podman inspect
Bugfixes
- Fixed a bug with the --device flag in
podman runandpodman create - Fixed
podman pod statsto accept partial pod IDs and pod names - Fixed a bug with OCI hooks handling
ALWAYSmatches - Fixed a bug with privileged rootless containers with
--net=hostset - Fixed a bug where
podman exec --userwould not work with usernames, only numeric IDs - Fixed a bug where Podman was forwarding both TCP and UDP ports to containers when protocol was not specified
- Fixed issues with Apparmor in rootless containers
- Fixed an issue with database encoding causing some containers created by Podman versions 0.8.1 and below to be unusable.
Compatibility:
We switched JSON encoding/decoding to a new library for this release to address a compatibility issue introduced by v0.8.2. However, this may cause issues with containers created in 0.8.2 and 0.8.3 with custom DNS servers.