How to Use Docker and Docker Compose on UGREEN NAS
To use Docker on a supported UGREEN NAS, install the Docker app from App Center and deploy containers through Docker’s Container or Project interface. The DH4300 Plus and current DXP models support Docker, while the DH2300 does not. Docker Compose Projects provide a reusable way to configure ports, folders, environment variables, and updates.

Key Takeaways
- The DH2300 does not officially support Docker. The DH4300 Plus and current DXP models do.
- App Center container applications offer the simplest installation, while Docker Compose Projects provide more configuration control.
- In UGOS Pro, create a Compose deployment through Docker > Project > Create. Command-line access is not required.
- Map important application data to NAS folders so it remains available when a container is rebuilt or updated.
Does Your UGREEN NAS Support Docker?
| UGREEN NAS group | Docker support | Image architecture |
|---|---|---|
| DH2300 | Not supported | Not applicable |
| DH4300 Plus | Supported | ARM64 |
| DXP models | Supported | x86-64/AMD64 |
DXP models covered here are DXP2800, DXP2800 GT, DXP4800 Plus, DXP4800 Pro, DXP4800 GT, DXP480T Plus, DXP6800 Pro, and DXP8800 Plus. If running containers is part of your purchase decision, compare Docker-compatible UGREEN NAS models.

What Are Docker Images, Containers, and Compose Projects?
These terms describe different parts of a Docker deployment:
| Term | What it means | What happens when it is removed |
|---|---|---|
| Image | The packaged application and its dependencies | Removing it prevents new containers from being created from that local image |
| Container | A running or stopped application instance created from an image | Its internal writable data is removed with the container unless that data was stored outside it |
| Registry | A service used to distribute container images | Removing a local image does not remove it from the registry |
| Compose Project | A YAML configuration defining one or more containers and their settings | Removing the Project can also affect its relative project folders, so back them up first |
Docker normally prevents an image from being deleted while a running container is still using it. To remove a manually deployed application completely, stop and delete its container first, then remove the image if no other container needs it.
A Compose Project is useful even when an application uses only one container. It records the image, ports, folder mappings, environment variables, restart policy, and related settings in one reusable configuration.
Should You Use App Center, a Manual Container, or a Compose Project?
UGOS Pro provides three main ways to deploy a containerized application.
| Installation route | Best for | How it is managed |
|---|---|---|
| App Center container application | The simplest supported installation | Installed, updated, repaired, and uninstalled through App Center |
| Manual container | A single container configured through visual fields | Created and edited through Docker > Container |
| Compose Project | Reusable configurations for one or more containers | Created and edited through Docker > Project |
Use a Compose Project when an application provides a Compose file, when you want a reproducible configuration, or when several related services must run together. Containers created by a Project still appear under Docker > Container, but their settings must be changed in the Project configuration and then redeployed.
How Do You Install Docker on UGREEN NAS?
Before installing Docker, update UGOS Pro and confirm that your model supports the application.
- Sign in to the UGOS Pro web interface or desktop client.
- Open App Center.
- Find the Docker application.
- Click Install.
- Select a storage space with enough capacity for images, containers, and application data.
- Complete the installation and open Docker.

Installing Docker automatically creates a Docker shared directory. This is the most convenient starting location for container configuration and project folders.
Docker displays separate pages for images, containers, Projects, networks, and management settings. A Compose Project can pull its required image automatically, so you do not need to download the image separately before following the next walkthrough.
How Do You Deploy a Docker Compose Project?
The following example deploys a small NGINX web server. The official NGINX image supports both AMD64 and ARM64, making it suitable as a basic test on the DH4300 Plus and supported DXP models.
1. Open the Project Creation Wizard
Open Docker, select Project, and click Create.
Enter docker-test as the Project name. Keep the automatically generated Project storage path or select another folder inside the Docker shared directory.
2. Enter the Compose Configuration
Paste this configuration into the Compose editor:
services:
web:
image: nginx:stable-alpine
container_name: docker-test
ports:
- "8080:80"
restart: unless-stopped
If NAS port 8080 is already being used, replace it with another unused port, such as 8081. Keep the container port 80 unchanged.
3. Deploy the Project
Click Deploy. Docker will download the image, create the container, and start the service.
After deployment:
- Open Docker > Container.
- Confirm that
docker-testis running. - Open a browser on the same local network.
- Visit
http://NAS_IP:8080, replacingNAS_IPwith your UGREEN NAS IP address.
The NGINX welcome page confirms that the container is running and the port mapping works.
If the page does not open, select the container and check its Log for startup errors. Also confirm that the NAS IP address and NAS-side port are correct.
After completing the test, return to Docker > Project, select docker-test, and remove the Project. You can then remove the NGINX image from Docker > Image if no other container uses it.
How Do You Read a Docker Compose File?
A Compose file uses YAML to describe how containers should run.
| Setting | Purpose |
|---|---|
services |
Lists the application services included in the Project |
image |
Specifies the container image and tag |
container_name |
Assigns a recognizable name to the container |
ports |
Maps a NAS port to a port inside the container |
volumes |
Maps NAS folders to folders inside the container |
environment |
Supplies application settings such as time zone, user ID, or password |
restart |
Controls whether the container restarts after a failure or NAS reboot |
networks |
Defines how related containers communicate |
Containers share the NAS’s processor and memory with UGOS Pro, file services, indexing, and other applications. Monitor individual container usage in Docker Overview and overall system load in Task Manager. For sustained or resource-heavy workloads, apply appropriate CPU and memory limits while leaving enough capacity for core NAS services.
In this port mapping:
ports:
- "8080:80"
8080 is the port on the UGREEN NAS, and 80 is the port inside the container. The application is therefore accessed at http://NAS_IP:8080.
Each NAS-side port must be available. If two containers both try to use NAS port 8080, one of them will fail to start.
A published port can be reached by devices that have network access to the NAS. Access from outside the local network depends on the firewall, router, and remote-access configuration, so publishing a port should not be treated as an authentication or security measure.
Before deploying a Compose file obtained online, review its image source, folder mounts, ports, and privileges. Settings such as privileged: true, network_mode: host, device access, a mount of the NAS root directory, or access to the Docker socket grant substantially more control than an ordinary container needs.
How Do You Keep Container Data After an Update?
Files stored only in a container’s internal writable layer can disappear when the container is deleted or rebuilt. Persistent application data should be mapped to a NAS folder.
For example:
volumes:
- ./config:/config
- /volume1/media:/media:ro
The path on the left belongs to the UGREEN NAS. The path on the right is where the application sees that folder inside the container.
-
./configcreates or uses aconfigfolder inside the current Project directory. -
/volume1/mediarefers to an absolute folder path on the NAS. -
/mediais the path available to the application inside the container. -
:rogives the container read-only access to the media folder.
Use read-only access for libraries that the application only needs to scan or stream. Configuration folders, databases, download folders, and other locations where the application must save files require write access.
Back up the folders containing configuration files, databases, and other irreplaceable application data. A container image can usually be downloaded again; personal application data cannot.
How Do You Update or Troubleshoot a Docker Project?
UGOS Pro can detect newer images used by Projects. When an update is available, the Project list can display an update indicator. Updating pulls the newer image and rebuilds the container, which can briefly interrupt the service.
Before updating:
- Confirm that important data is stored in mapped NAS folders.
- Back up the application configuration or database.
- Review the application’s release notes for breaking changes.
- Record the current image tag and working configuration.
A moving tag such as latest or stable-alpine can point to a newer build over time. For applications where predictable updates matter, use a tested version tag when the image publisher provides one.
App Center container applications follow a different update process. Update those applications through App Center, not by manually replacing their images in Docker.
Use the following checks when a container does not work as expected:
| Problem | First check |
|---|---|
| Image will not download | Confirm the NAS can reach the image registry and that the image name and tag exist |
| Container exits immediately | Open the container’s Log and check required environment variables or startup settings |
| “Permission denied” appears | Confirm the mapped NAS folder exists and the container has the required access |
| Web interface will not open | Confirm the container is running and use the NAS-side port shown in the mapping |
| Container fails because a port is occupied | Change the left side of the port mapping to an unused NAS port |
| Image reports an architecture error | Use an ARM64 image on the DH4300 Plus or an AMD64 image on a DXP model |
| Project changes do not appear | Edit the Compose configuration under Project and redeploy it |
| Data disappears after rebuilding | Restore the mapped data from backup and correct the volume configuration |
For a Project-created container, use Docker > Project to change its settings. The corresponding entry under Docker > Container is useful for checking status, resource use, port mappings, mounted paths, Terminal access, and logs, but its Project-controlled configuration cannot be edited there.
Which UGREEN NAS Docker Guide Should You Follow Next?
Once the test Project works, use a dedicated setup guide for the application you want to run:
- How to Install Plex on UGREEN NAS
- How to Install Jellyfin on UGREEN NAS
- How to Set Up Navidrome on UGREEN NAS
- Best UGREEN NAS Apps: Native Tools and Docker Picks
Use the application-specific image, ports, folder paths, environment variables, and permission settings from the relevant setup guide rather than assuming that one generic Compose configuration works for every application.

Frequently Asked Questions About UGREEN NAS Docker
Can I install Docker on the UGREEN NAS DH2300?
No. Docker is not officially supported on the DH2300. The DH2300 can store files for an application running on another device, but it cannot host the Docker container itself.
Should I use a manual container or Docker Compose?
Use a manual container when you want to configure a simple container through visual fields. Use a Compose Project when the application provides a Compose file, you want a reusable configuration, or several related services must be managed together. Compose is also suitable for a single container.
Where does Docker Compose store its data on UGREEN NAS?
The Compose file and relative folders such as ./config are stored under the Project’s selected storage path. Absolute mappings such as /volume1/media:/media use the specified NAS folder. Confirm the location when creating the Project and back up important mapped folders.
What does 8080:80 mean in Docker Compose?
It maps port 8080 on the UGREEN NAS to port 80 inside the container. The application is accessed at http://NAS_IP:8080. The NAS-side port must not already be used by another service.
Will deleting a Docker container delete my files?
Deleting a container removes data stored only inside that container. Files in an external bind-mounted NAS folder normally remain, but relative Project folders may be affected when the Project or its storage directory is removed. Back up important data before deleting a Project, Docker, or an App Center container application.
How do I update a Docker Compose Project in UGOS Pro?
Open Docker > Project and use the available update option when a newer image is detected. UGOS Pro pulls the image and rebuilds the container. Back up persistent data and review application changes before updating.