Containers

Virtual Machines and Containers in TrueNAS 25.04

TrueNAS 25.04 introduces support for Containers (Linux system containers), enabling lightweight isolation similar to jails in TrueNAS CORE.

TrueNAS 25.04.2 reintroduces “classic virtualization” with the Virtual Machines feature.

Virtual machines created in 25.04.0 or 25.04.1 using the Instances feature continue to function and appear in the Containers screen. New VMs and those migrated from 24.10.2.2 to 25.04.2 use the Virtual Machines screen.

Virtual machines automatically migrate from TrueNAS 24.10 to 25.04.2. No manual migration of virtual machines is required.

We are actively updating Tutorials and UI Reference articles to reflect these changes. Please use the Docs Hub Feedback button (located to the right of any article) to report documentation issues or request improvements to the Containers or Virtual Machines documentation.

Containers (Linux system containers) are an experimental feature intended for community testing only. Functionality could change significantly between releases, and containers might not upgrade reliably. Use this feature for testing purposes only—do not rely on it for production workloads. Long-term stability is planned for future TrueNAS Community Edition releases.

Make all configuration changes using the TrueNAS UI. Operations using the command line are not supported and might not persist on upgrade.

For assistance or to discuss this feature with other TrueNAS users, visit our community forums.
To report bugs, submit an issue on TrueNAS Jira.

Containers Screen

The Containers screen allows users to add, edit, or manage Linux containers.

TrueNAS 25.04.2 introduces the Virtual Machines screen for creating and managing VMs.

You cannot create new virtual machines using the Containers screen in 25.04.2 or later. New VM creation is only available through the Virtual Machines screen.

Virtual machines created using the previous Instances feature in earlier 25.04 versions remain fully functional and continue to appear in the Containers screen for management purposes. You can manage these existing VMs using the same tools and procedures described in the Managing Containers section.

Virtual machines automatically migrated from TrueNAS 24.10 to 25.04.2 appear in the new Virtual Machines screen and use the updated VM management interface.

The screen header displays a Pool is not selected status before a pool for containers is selected. See Global Settings for more information.

Pool Is Not Selected
Figure 1: Pool Is Not Selected

After setting the pool, Initialized shows on the screen header.

The Containers screen displays No Containers before you create the first container.

Containers Screen No Containers
Figure 2: Containers Screen No Containers

The Configuration dropdown menu includes Global Settings, Manage Volumes, and Map User/Group IDs options.

Create New Container at the top right of the screen opens the Create Container wizard.

Configuration Menu

Configuration on the Containers screen header displays service-level settings that apply to all containers.

Global Settings

Global Settings opens the Global Settings screen showing global options that apply to all containers, including selecting the storage pool for containers and network settings.

Global Settings Screen
Figure 3: Global Settings Screen

Storage Settings

The Pool dropdown list shows a list of available pools on the system. [Disabled] deactivates the pool and disables the containers service.

The screen header displays a Pool is not selected status before a pool for containers is selected.

Default Network Settings

Default Network settings configure global networking defaults for the containers service.

SettingDescription
BridgeSpecifies the network bridge. Automatic uses the default network bridge for communication between containers and the TrueNAS host. The dropdown list option shows existing bridges. See Accessing NAS from VMs and Containers for more information.
IPv4 NetworkSpecifies the IPv4 address for the bridge specified when Bridge is set to Automatic. Enter the IPv4 address and subnet (e.g., 192.168.1.0/24) for the containers to use or leave empty to allow TrueNAS to use the default address.
IPv6 NetworkSpecifies the IPv6 address for the bridge specified when Bridge is set to Automatic. Enter the IPv6 address and subnet (e.g., fd42:96dd:aef2:483c::1/64) for the containers to use or leave empty to allow TrueNAS to use the default address.

Manage Volumes

The Volumes screen lists all volumes currently configured for the containers service.

Volumes Screen
Figure 4: Volumes Screen

Create Volume opens the Create New Volume dialog to configure a new containers volume.

Import Zvols opens the Import Zvol dialog to import an existing Zvol as a containers volume.

Upload ISO opens a file browser to select an .iso file from the client computer and upload it to TrueNAS for use in containers.

Image Filename Requirements

Valid instance names must meet the following conditions:

  • The name must be between 1 and 63 characters long.
  • The name must contain only letters, numbers and dashes from the ASCII table.
  • The name must not start with a digit or a dash.
  • The name must not end with a dash.

Create Volumes

Create Volume on the Volumes screen opens the Create New Volume dialog.

Create New Volume Dialog
Figure 5: Create New Volume Dialog
SettingDescription
NameName of the volume. Enter a name for the volume.
SizeSize of the volume. Enter a size for the volume, for example 1 GiB.

Create creates the new volume.

Import Zvol

Import Zvols on the Volumes screen opens the Import Zvol dialog.

Import Zvol Dialog
Figure 6: Import Zvol Dialog
SettingDescription
Select ZvolsSpecifies the Zvol to import. Enter or browse to select an existing Zvol.
CloneClones and promotes a temporary snapshot of the zvol into a custom storage volume. This option retains the original zvol while creating an identical copy as a containers volume.
MoveRelocates the existing zvol to the ix-virt dataset as a volume.

Delete Volumes

Delete on an image row deletes that image. A Delete volume dialog displays.

Delete Volume Dialog
Figure 7: Delete Volume Dialog

Confirm and then Continue deletes the image. Delete is disabled for active images.

Map User And Group IDs

The Map User and Group IDs screen allows users to manually configure UID and GID mappings inside containers.

Existing mappings are shown in a table containing the group or user name, host ID, and container ID. Delete on a row deletes that mapping.

Map User and Group IDs Screen
Figure 8: Map User and Group IDs Screen

The Users or Groups tabs display mappings for individual user or group accounts, respectively.

Existing mappings are shown in a table containing the group or user name, host ID, and container ID. Delete on a row deletes that mapping.

Add New Mapping Settings
SettingDescription
User/GroupSpecifies the user or group account name. Begin typing an account name to search for it or select it from the dropdown menu.
Map to the same UID/GID in the container(Default) Specifies the host ID-to-container user or group ID mapping. Select to map the host ID to the same ID in containers.
Container UID/GID(Displays when Map to the same UID/GID in the container is not selected)
Specified the user or group ID. Enter the ID number (e.g., 1000) to map the host user or group ID to in containers.

Set creates the mapping. Changes take effect immediately, but containers might require a restart to reflect the changes.

Create Container Wizard

The Create Container configuration wizard displays all settings to set up a new container.

Container Configuration

The Container Configuration settings specify the container name and operating system image.

Container Configuration
Figure 9: Container Configuration
SettingDescription
NameRequired. Enter an alphanumeric name for the container.
ImageBrowse Catalog opens the Select Image screen with available Linux image choices from linuxcontainers.org. Search or browse to locate your desired image and click Select.

Name Requirements

A container name must meet these criteria:

  • It must be between 1 and 63 characters long.

  • It can only include letters, numbers, and dashes from the ASCII character set.

  • It cannot begin with a number or a dash.

  • It cannot end with a dash.

CPU & Memory

The CPU & Memory settings specify the number of virtual CPU cores to allocate to the container and memory size.

CPU & Memory
Figure 10: CPU & Memory

CPU and Memory Settings
SettingDescription
CPU ConfigurationEnter the number of virtual CPU (vCPU) cores to allocate to the instance. Set to an integer to expose that number of full vCPU cores to the instance.

Set to a range or comma-separated list to pin vCPUs to specific physical cores. For better cache locality and performance, select cores that share the same cache hierarchy or NUMA node. For example, to assign cores 0,1,2,5,9,10,11, you can write: 1-2,5,9-11.

Set CPU limits or leave this field blank to allow access to all host CPUs.
Memory SizeAllocate RAM for the instance. This field accepts human-readable input (Ex. 50 GiB, 500M, 2 TB). If units are not specified, the value defaults to mebibytes (MiB). The minimum value is 32 MiB.

Set memory limits or leave this field blank to allow access to all host memory.

Environment

The Environment settings configure optional environment variables to run on boot or execute. These settings are only available for containers and cannot be used with VMs.

Add displays a set of environment fields.

Environment
Figure 11: Environment

Environment Settings
SettingDescription
NameEnter the name of the environment variable to set (for example, LANG).
ValueEnter the value to assign to the environment variable (for example, en_US.UTF-8).

Disks

The Disks settings allow mounting storage volumes to a container. Container options include creating a new dataset or using an existing one.

Add displays a set of fields to create or mount a disk.

Disks - VM
Figure 12: Disks - VM
Disks Settings
SettingDescription
Source(Required) Displays after clicking Add in Disks. Define an existing dataset or create a new dataset using the Create Dataset option. Creating a dataset requires entering a path or browsing to select a parent dataset from the dropdown list of datasets on the system. Enter a name for the new dataset in the Create Dataset window. Create adds the dataset.
Destination(Required) Specifies the file system path to mount the disk in the container, for example /media or /var/lib/data.

Proxies

The Proxies settings allow you to forward network connections between the host and the container. This routes traffic from a specific address on the host to an address inside the container, or vice versa, allowing the container to connect externally through the host.

Add displays a set of proxy configuration settings.

Proxies
Figure 13: Proxies
Proxies Settings

SettingDescription
Host ProtocolSets the connection protocol for the TrueNAS host. Options are TCP or UDP.
Host PortSets TrueNAS host port to map to the instance port on the container, for example 3600.
Instance ProtocolSets the connection protocol for the container. Select from the options TCP or UDP.
Instance PortSets the port number within the container. Enter a port number to use, for example 80.

Network

The Network settings configure how the container connects to the host and external networks. Options include the default network bridge, an existing bridge interface, or a MACVLAN.

See Accessing NAS from VMs and Containers for more information.

Default Network Settings
Figure 14: Default Network Settings
Network Settings
SettingDescription
Use default network settingsSelect to use default network settings to connect the container to the host using the automatic bridge defined in Global Settings. Selected by default. Disable to display the Bridged NICs (if available) and Macvlan NICs settings.
Bridged NICsSelect an existing bridge on the TrueNAS host to connect to the container. Displays when one or more existing bridge interface(s) are available.
Macvlan NICsSelect an existing interface to create a virtual network interface based on it, assigning a unique MAC address so the container appears as a separate device on the network.

A MACVLAN NIC on the same physical interface as the TrueNAS host cannot directly communicate with the host. MACVLAN sends traffic directly to the external network without passing through the host network stack. The host does not recognize MACVLAN packets as local, so any traffic between them must be routed through an external switch, use a separate NIC, or use a network bridge.

USB Devices

USB Devices displays a list of available devices to attach to a container, allowing the device to function as if physically connected.

USB Devices
Figure 16: USB Devices

GPU Devices

GPU Devices displays available GPU devices to attach to a container, enabling it to utilize hardware acceleration for graphics or computation tasks.

GPU Devices
Figure 17: GPU Devices

Containers Table

The Containers table lists each configured container, displaying its name, type, current state, and options to restart or stop it. Stopped containers show the option to start the container.

Containers Screen - Populated
Figure 18: Containers Screen - Populated

The Details for Container widgets show information and management options for the selected container.

The button restarts or the button stops a running container.

The Stop Options window defines when the container stops, immediately or after one of 30 seconds, 1 minute, or 5 minutes occurs.

Container Stop Options
Figure 19: Container Stop Options

The button starts a stopped container.

Search above the Containers table allows entering the name of a container to locate a configured container.

The checkbox on each container row shows the Bulk Actions dropdown.

Bulk Actions

The Bulk Actions dropdown list allows you to apply actions to one or more containers on your system. Options are Start All Selected, Stop All Selected, and Restart All Selected.

Bulk Actions
Figure 20: Bulk Actions

Containers Widgets

The Details for Container widgets display information and configuration options for the selected container.

General Info Widget

The General Info widget displays the container status, autostart setting, base image, CPU, memory, and secure boot configuration. It includes the Edit and Delete buttons for the container.

General Info Widget
Figure 21: General Info Widget

Delete opens the Delete dialog.

Edit opens an Edit Container: Container configuration screen populated with editable settings also found on the install wizard screen for the container.

Delete Containers

The Delete dialog asks for confirmation to delete the selected container.

Delete Container Dialog
Figure 22: Delete Container Dialog

Confirm activates the Continue button. Continue starts the delete operation.

Devices Widget

The Devices widget displays all USB, GPU, Trusted Platform Module (TPM), and PCI Passthrough devices attached to the container.

Devices Widget
Figure 23: Devices Widget

Add opens a list of available USB Devices, GPUs, TPM, and PCI Passthrough devices.

Add Device under PCI Passthrough opens the Add PCI Passthrough Device screen.

Disks Widget

The Disks widget shows the storage devices attached to the container, along with their associated paths. It allows you to manage the disks, including adding new ones or modifying existing ones.

Disks Widget
Figure 24: Disks Widget

Add opens the Add Disk screen for adding new disks to the container.

For existing disks, the more_vert actions include options to Edit or Delete the disk mount.

For VMs, the widget displays the current root disk size. The root disk stores the OS and serves as the boot disk for the VM. Change opens the Change Root Disk Setup dialog.

Add/Edit Disk Screen

The Add/Edit Disk screen allows you to configure a new disk or modify an existing one attached to a container.

Add Disk Screen - VM
Figure 25: Add Disk Screen - VM
Add/Edit Disk Settings - VM
SettingDescription
VolumeSelect Volume opens the Volumes screen to create or select a volume to attach.
Boot PrioritySets the order in which to boot disks. By default, the root disk is set to 1, which is the highest priority.
I/O BusSets the I/O bus for the disk. Options are NVMe, Virtio-BLK, and Virtio-SCSI.
Add/Edit Disk Settings
SettingDescription
SourceEnter or browse to select the host source path for the disk. For a new dataset, enter or browse to select the parent path.
DestinationEnter the destination path to mount the disk in the container.

Save applies changes.

Delete Disk Mounts

The Delete Item dialog asks for confirmation to delete the selected disk mount.

Delete Item Dialog
Figure 27: Delete Item Dialog

Confirm activates the Continue button. Continue starts the delete operation.

Change Root Disk Setup

The Change Root Disk Setup dialog allows you to configure the size of the disk a VM stores its OS on and boots from, and change the root disk I/O bus.

Increase Root Disk Size Widget
Figure 28: Increase Root Disk Size Widget
SettingDescription
Root Disk Size (in GiB)Increases the size of the VM root disk. Enter a new root disk size in GiB, such as 20.
Root Disk I/O BusSets the communication pathway type for the root disk. Options are NVMe, Virtio-BLK, and Virtio-SCSI.

Save applies changes.

NIC Widget

The NIC Widget displays the network interfaces (NICs) attached to the container, along with their names and types. It allows you to add new NICs and manage existing ones.

NIC Widget
Figure 29: NIC Widget

Add opens a menu with available NIC choices, allowing you to select and attach a new NIC to the container.

For existing NICs, the more_vert actions menu allows you to delete the NIC.

Delete NICs

The Delete Item dialog asks for confirmation to delete the selected NIC.

Delete Item Dialog
Figure 30: Delete Item Dialog

Confirm activates the Continue button. Continue starts the delete operation.

Proxies Widget

The Proxies widget displays the network proxy settings configured for the container. It allows you to manage these settings, including adding, editing, or removing proxies. These settings are only available for containers and cannot be used with VMs.

Proxies Widget
Figure 31: Proxies Widget

Add opens the Add Proxy screen to configure a new proxy for the container.

For existing proxies, the more_vert actions menu includes options to Edit or Delete the proxy.

Add/Edit Proxy Screen

The Add/Edit Proxy screen allows you to configure or modify a proxy setting attached to a container.

Add Proxy Screen
Figure 32: Add Proxy Screen

SettingDescription
Host ProtocolSets the connection protocol for the TrueNAS host. Options are TCP or UDP.
Host PortSets TrueNAS host port to map to the instance port on the container, for example 3600.
Instance ProtocolSets the connection protocol for the container. Select from the options TCP or UDP.
Instance PortSets the port number within the container. Enter a port number to use, for example 80.

Save applies changes.

Delete Proxies

The Delete Item dialog asks for confirmation to delete the selected proxy configuration.

Delete Item Dialog
Figure 33: Delete Item Dialog

Confirm activates the Continue button. Continue starts the delete operation.

Idmap Widget

The Idmap widget shows the user ID (UID) and group ID (GID) mappings used by the container to translate IDs between the host and the container or VM. It provides details such as the Host ID, Maprange, and NS ID for both UIDs and GIDs. These settings are only available for containers and cannot be used with VMs.

Idmap Widget
Figure 34: Idmap Widget
  • Host ID shows the starting ID used by the host for mapping to the container IDs.
  • Maprange indicates the range of IDs that the host allocates for the container.
  • NS ID represents the namespace ID used for the mapping.

For example, if the Host ID is 2147000001 and the Maprange is 458752, the container UID 0 (root) is mapped to the host UID 2147000001. This ensures proper isolation and user/group identity management between the host and the container.

Tools Widget

The Tools widget provides quick access to various tools and utilities for managing your container. You can open a shell, console, or VNC session directly from this widget.

Tools Widget - VM
Figure 35: Tools Widget

Shell opens an Container Shell session for command-line interaction with the container.

Serial Console (VM only) opens an Container Console session to access the system console for the container.

VNC (VM only) opens a VNC connection using your preferred client. It uses a VNC URL scheme (for example, vnc://hostname.domain.com:5930) to launch the session directly in the application. If your environment does not support VNC URLs, you can manually connect using a VNC client by entering the host name or IP address followed by the port number without vnc:// (for example, hostname.domain.com:5930 or IP:5930).

Metrics Widget

The Metrics widget displays real-time graphs that monitor container performance, including CPU usage, memory usage, and disk I/O pressure.

Metrics Widget
Figure 36: Metrics Widget

CPU (%) shows the percentage of CPU usage over time.

Memory (MiB) displays the memory usage in MiB over time.

Disk I/O Full Pressure (%) tracks the disk input/output pressure as a percentage over time.

Edit Container Screen

The Edit Container: Container screen settings are a subset of those found on the Create Container Wizard screens. It includes the general Container Configuration and CPU and Memory settings for all containers. Additionally, containers include Environment settings. VMs include VNC and Security settings. To edit device, disk, network, or proxy settings, use the Containers Widgets on the Containers screen.

Edit Container Configuration Settings

The Container Configuration settings on the Edit screen allow you to modify basic parameters for the container, such as startup behavior.

Edit Container Configuration
Figure 37: Edit Container Configuration

Autostart automatically starts the container when the system boots.

Edit CPU and Memory Settings

The CPU & Memory settings on the Edit screen are the same as those in the Create Container wizard.

Edit CPU & Memory
Figure 38: Edit CPU & Memory

CPU and Memory Settings
SettingDescription
CPU ConfigurationEnter the number of virtual CPU (vCPU) cores to allocate to the instance. Set to an integer to expose that number of full vCPU cores to the instance.

Set to a range or comma-separated list to pin vCPUs to specific physical cores. For better cache locality and performance, select cores that share the same cache hierarchy or NUMA node. For example, to assign cores 0,1,2,5,9,10,11, you can write: 1-2,5,9-11.

Set CPU limits or leave this field blank to allow access to all host CPUs.
Memory SizeAllocate RAM for the instance. This field accepts human-readable input (Ex. 50 GiB, 500M, 2 TB). If units are not specified, the value defaults to mebibytes (MiB). The minimum value is 32 MiB.

Set memory limits or leave this field blank to allow access to all host memory.

Edit VNC Settings

The VNC settings on the Edit screen are the same as those in the Create Container wizard. These settings are only available for VMs and cannot be used with containers.

Edit VNC
Figure 39: Edit VNC

VNC Settings
SettingDescription
Enable VNCSelect to allow remote desktop access via VNC.
VNC PortEnter a port number to configure the port that the VM VNC server listens for connections on.
VNC PasswordEnter a password to authenticate VNC access to the VM. Note: A VNC password is not cryptographically secure. You should not rely on it as a single authentication mechanism for your VMs.

Edit Environment Settings

The Environment settings on the Edit screen are the same as those in the Create Container wizard. These settings are only available for containers and cannot be used with VMs.

Add displays a set of environment fields.

Environment Settings
Figure 40: Environment Settings

Environment Settings
SettingDescription
NameEnter the name of the environment variable to set (for example, LANG).
ValueEnter the value to assign to the environment variable (for example, en_US.UTF-8).

Edit Security Settings

The Security settings on the Edit screen allow you to enable Secure Boot for the container, ensuring that only trusted, signed software runs during the startup process. These settings are only available for VMs and cannot be used with containers.

Security Settings
Figure 41: Security Settings
Security Settings
SettingDescription
Secure BootSelect to ensure only trusted, signed software runs during startup. Some images are not compatible with Secure Boot.

Add PCI Passthrough Device Screen

The Add PCI Passthrough Device screen lists the available physical PCI devices that can be attached to a container.

Add PCI Passthrough Device Screen
Figure 42: Add PCI Passthrough Device Screen

Use Search Devices or the Type dropdown to filter available devices. The selected PCI device(s) must not be in use by the host or share an IOMMU group with any device the host requires.

Select attaches the selected device.