0.4.1

apple/container0.4.1Aug 28, 2025by jglogan

AI Summary

This release brings support for named volumes, systemd execution, and improved interactive input handling. It also unifies platform flags and prevents DNS hostname conflicts.

Key Highlights

  • `systemd` can run in containers
  • Unified `--platform`, `--os`, `--arch` flag support
  • Improved interactive input handling (`-i` flag)
  • Automatic `/etc/hosts` generation
  • Create and manage named volumes

New Features

  • SSH auth socket forwarding for run and exec commands
  • Custom application data root support with `--app-root`
  • Prevent deletion of referenced networks
  • DNS hostname conflict prevention

Full Release Notes

More fixes and features in the August release...thank you for all of the contributions!

The most notable feature in this release are named volumes (`container volume create`). One difference between named volumes in `container` and in other systems is that you can't read-write a named volume across multiple running containers (VMs).

Why no 0.4.0? We had to discard that tag due to a couple test regressions.

## Highlights

* Core
  * [`systemd` can run in containers](https://github.com/apple/container/issues/92)
  * [Unified `--platform`, `--os`, `--arch` flag support](https://github.com/apple/container/issues/231)
  * [Improved interactive input handling (`-i` flag)](https://github.com/apple/container/pull/483)
  * [Consistent `--version` output](https://github.com/apple/container/pull/517)
* Network
  * [Automatic `/etc/hosts` generation](https://github.com/apple/container/issues/314)
  * [DNS hostname conflict prevention](https://github.com/apple/container/issues/394)
  * [Prevent deletion of referenced networks](https://github.com/apple/container/issues/392)
  * [SSH auth socket forwarding for `run` and `exec` commands](https://github.com/apple/container/issues/498)
* Storage
  * [Create and manage named volumes with `container volume`.](https://github.com/apple/container/issues/339)
* Plugins
  * [Custom application data root support with `--app-root`](https://github.com/apple/container/issues/418)

## What's Changed
* Add initial native builder code by @katiewasnothere in https://github.com/apple/container/pull/399
* Transition to `Mutex` by @dkovba in https://github.com/apple/container/pull/364
* Optionally resolve wrapper index to single-platform manifest based on `com.apple.containerization.index.indirect` annotation by @stevapple in https://github.com/apple/container/pull/397
* Do not print task descriptions with disabled progress updates by @dkovba in https://github.com/apple/container/pull/444
* Generate /etc/hosts by default by @dcantah in https://github.com/apple/container/pull/423
* Native Builder: Add parser support for CMD and LABEL instructions by @katiewasnothere in https://github.com/apple/container/pull/448
* Native builder: remove option token in favor of string literals by @katiewasnothere in https://github.com/apple/container/pull/450
* Named Volumes by @realrajaryan in https://github.com/apple/container/pull/362
* Select alternate data path with `container system start --app-root path`. by @jglogan in https://github.com/apple/container/pull/419
* Native builder parser support for EXPOSE by @katiewasnothere in https://github.com/apple/container/pull/465
* Prevent removal of network with container references. by @jglogan in https://github.com/apple/container/pull/470
* Relocate and rename `ClientDefaults`. by @jglogan in https://github.com/apple/container/pull/474
* Fixes for install root and plugin detection. by @jglogan in https://github.com/apple/container/pull/467
* Clarify macOS version support and minor style tweaks by @timsneath in https://github.com/apple/container/pull/485
* CLI (run): Only ask for stdin for -i by @dcantah in https://github.com/apple/container/pull/483
* Native Builder: DiffKey and Differ Procol  by @wlan0 in https://github.com/apple/container/pull/482
* Native Builder: Define Snapshotter protocol by @wlan0 in https://github.com/apple/container/pull/491
* Native Builder: Build Cache to use new snapshotter by @wlan0 in https://github.com/apple/container/pull/492
* CLI: Defer tty reset immediately by @dcantah in https://github.com/apple/container/pull/488
* Make Parser functions public for CLI plugins by @Reneechang17 in https://github.com/apple/container/pull/494
* Fixes builder compiler errors and warnings. by @jglogan in https://github.com/apple/container/pull/495
* Preserve permissions by default and fix warnings by @dkovba in https://github.com/apple/container/pull/496
* Ensure two containers cannot use the same DNS hostname. by @jglogan in https://github.com/apple/container/pull/490
* Add SSH auth socket forwarding by @Reneechang17 in https://github.com/apple/container/pull/502
* Adds how-to section for `--ssh`. by @jglogan in https://github.com/apple/container/pull/503
* Adds `container builder rm` alias. by @jglogan in https://github.com/apple/container/pull/505
* Fix SSH forwarding for exec process by @Reneechang17 in https://github.com/apple/container/pull/506
* Docs: clarify Xcode 26 beta must be the active developer directory by @unitof in https://github.com/apple/container/pull/238
* Extract version output logic so `--version` is consistent. by @jglogan in https://github.com/apple/container/pull/517
* Bump containerization dependency to 0.6.0 by @jglogan in https://github.com/apple/container/pull/526
* Add the support for ARG in the native builder parser by @dkovba in https://github.com/apple/container/pull/516
* Allow traversing symlink when checking for builtin plugins. by @jglogan in https://github.com/apple/container/pull/528
* Fix a warning when testing by @dkovba in https://github.com/apple/container/pull/531
* Bump CZ to 0.6.1 by @dcantah in https://github.com/apple/container/pull/540
* Bump CZ to 0.6.2 by @dcantah in https://github.com/apple/container/pull/543
* Integration: Log container bootlog in run test failures by @dcantah in https://github.com/apple/container/pull/541
* ContainerService: Move force delete logic to daemon by @dcantah in https://github.com/apple/container/pull/536
* ContainerService: Remove lock from list() by @dcantah in https://github.com/apple/container/pull/537
* CLI: Send logs to stderr by @dcantah in https://github.com/apple/container/pull/544
* Revert "Integration: Log container bootlog in run test failures (#541)" by @dcantah in https://github.com/apple/container/pull/548
* Uniform support for `--platform`, `--os`, `--arch`. by @jglogan in https://github.com/apple/container/pull/545

## New Contributors
* @stevapple made their first contribution in https://github.com/apple/container/pull/397
* @timsneath made their first contribution in https://github.com/apple/container/pull/485
* @unitof made their first contribution in https://github.com/apple/container/pull/238

**Full Changelog**: https://github.com/apple/container/compare/0.3.0...0.4.0