Before running applications in MOS, the Docker service must be configured and enabled.
Containers can then be deployed either manually through the Docker section or via the MOS Hub.
MOS provides two different ways to start containers:
Before creating any containers, the Docker service must be configured.
Navigate to:
Docker → Docker Service
Example:
Enables or disables the Docker engine.
Required:
Docker must be enabled before containers can be created.
Defines where Docker stores internal data such as images and layers.
Example:
/mnt/main/system/docker
This directory should be located on a fast and reliable storage pool.
WARNING: If you plan to put this directory on a mergerfs pool, you have to select the real path to a disk from your mergerfs pool which is for example located at: /var/mergerfs/main/system/docker
Defines the base path for persistent container configuration data.
Example:
/mnt/main/appdata
This location is critical for container persistence and should be backed up.
Defines the Docker storage driver filesystem.
Options:
overlay2 (default)btrfsOverlay2 is the recommended and most stable option, if you are using btrfs you can also select btrfs as the storage driver.
WARNING: Changing the storage driver will mean that you have to recreate all your containers, if doing so, it is recommended to stop the Docker service, delete the directory for Docker which usually lives in your system folder, change the storage driver and enable the Docker service again.
Defines how Docker networking is handled.
Common options:
ipvlanmacvlanbridgeChoose a mode that matches your network setup and container requirements.
Defines the delay (in seconds) before Docker starts during system boot.
Example:
30
Useful when storage pools or network interfaces need additional time to become available.
Enables automatic checks for container image updates.
Automatically updates containers based on the configured schedule.
Note:
Use with caution in production environments.
Navigate to:
Docker
This page lists all configured containers and provides an overview of:
Example:
Navigate to:
Docker → Docker Compose
This allows deploying one or multiple containers using a Docker Compose YAML definition.
Available fields:
Docker Compose is recommended for complex multi-container applications.
Containers deployed using Docker Compose are displayed as a stack in the Docker overview.
A stack represents a group of containers that belong together and are managed as a single unit.
Example:
immich-compose (4/4 started)The stack header shows:
Docker Compose stacks can be expanded to show the individual containers inside the stack.
Each container within a stack:
This allows visibility into complex applications while keeping the overview clean.
Example:
Clicking the stack menu provides the following actions:
Start Stack
Starts all containers in the stack.
Stop Stack
Stops all containers in the stack.
Restart Stack
Restarts all containers in the stack.
Edit Stack
Opens the Docker Compose configuration for editing.
Remove Stack
Removes the entire stack and all associated containers.
Pull Stack Images
Pulls the latest images for all containers in the stack.
Stack actions always apply to all containers within the stack.
The action menu (three-dot button) provides additional Docker management features.
Available actions:
Add container
Create a new container manually.
Docker Compose
Deploy containers using a Docker Compose YAML file.
Create Docker group
Organize containers into logical groups.
Set Wait Times
Define startup delays for individual containers.
Unused Docker Images
View and remove unused container images.
Check for Updates
Manually check for available image updates.
Update All
Update all containers at once.
Example:
Each individual container provides a context menu with management actions.
Available actions:
Web UI
Opens the container’s web interface (if configured).
Terminal
Opens an interactive shell inside the container.
Stop
Gracefully stops the container.
Restart
Restarts the container.
Kill
Immediately stops the container without graceful shutdown.
Edit
Opens the container configuration for editing.
Logs
Displays the container logs.
Force Update
Pulls the latest image and recreates the container.
Delete
Removes the container and its configuration.
These actions apply only to the selected container.
Example:
Navigate to:
Docker → Add container
Template
Optional predefined template.
Name
Unique container name.
Repository
Docker image repository (for example: lscr.io/linuxserver/code-server).
Network
Docker network to attach the container to.
Custom IP
Optional static IP (depending on network mode).
Default Shell
Shell used for interactive container access.
GPU
Assign GPU resources if supported.
Privileged
Grants extended system permissions to the container.
Use only if required.
Paths
Map host directories to container paths.
Ports
Expose container ports to the host.
Devices
Pass through host devices.
Variables
Environment variables used by the container.
Optional shortcut link to the container web interface.
Defines the container icon shown in the UI.
Icons can be configured using Material Design Icons (MDI) identifiers.
Example:
mdi-vpn
Navigate to:
Docker → Create Docker group
Docker groups allow logical grouping of containers for better organization.
Configuration options:
Autostart behavior differs depending on how containers are deployed.
Recommendation: Use stack-level autostart for multi-container applications to ensure proper startup order.
The MOS Hub provides a template-based container deployment experience similar to an app store.
Features:
MOS Hub is the recommended starting point for new users.
Example:
To start your first container in MOS:
Once Docker is configured, MOS becomes a powerful platform for running applications and services.