This article will show how to get Synology DSM working on Docker.
At the time of writing, it seems there is no issue so far with dsm "6.2.3-25426".
Requirements (at the time of the writing):
- Xpenology Jun's Loader 1.03b for ds3615xs (which can be found in this forum)
- DSM 6.2.3 (25426) file named "DSM_DS3615xs_25426.pat" (here)
This system is for testing or educational purpose ONLY, and It is NOT recommended for use in production environment because it has no support and it has not been proven stable/reliable.
So if DATA LOSS happens by using this system, this is ONLY on your own responsibility.
If you are happy with the testing of this product, I would highly recommend you to go for an original Synology hardware especially for PRODUCTION environment where data is critical.
We recommend ...
... at least 512MB RAM
... at least 16GB of free disk space
Configure Lxc container [Proxmox user only]
This part is for users using proxmox or Lxc container, if this is not your case then skip this part and go to the next part.
Add overlay, aufs module and nested option
On proxmox host, execute as root (or with sudo):
Create lxc container
Create a new unpriviledge Lxc container :
- With the template "debian-10-standard_10.5-1_amd64.tar.gz" downloaded in proxmox ve
- Core 1, RAM 1GB, Swap 1GB, Root disk 32GB
Edit container conf file
/etc/pve/lxc/111.conf to look like the following:
Start the container with
pct start 111
Then access to its console with
pct enter 111 or
lxc-attach --name 111
Then continue to the next part to configure this linux container.
Check virtual host capability
Your host need to have virtualization capability to get this docker working.
On host server, open a shell as
root, and execute the following command:
- if /dev/kvm issue :
chmod o+rw /dev/kvm
- if fuse issue:
Bootloader in a web server
The bootloader "synoboot_103b_ds3615xs_virtio_9p.img", downloaded from this forum , need to be stored in a place where it can provide a URL to the file.
For example, you can :
- Store it in your own web server
- Upload it into gofile.io , a free file storage sharing, then use the "download" button link as url
The URL will be used as BOOTLOADER_URL parameter in Docker.
If you do not want to use a webserver but a local folder (ie.
- Copy bootloader to
- Then use the following parameter in docker run command line:
- -e DISK_PATH="/xpy_syst"
- -v /xpenodock/syst:/xpy_syst
Start Xpenology Docker
You can find all the documentation and instruction in https://github.com/uxora-com/xpenology-docker .
More advanced run: my prefered configuration
In this configuration:
- Snapshot will be usable
[[email protected]]$ docker exec -ti $( docker container ls -f 'ancestor=uxora/xpenology' -f "status=running" -q ) vm-snap-create
- will contain bootloader and vm datafiles.
bootloader.imgalready exists in this folder, then it won't download it from
BOOTLOADER_URLbut use the existing one.
- you will be able to quickly change bootloader by replacing those files
- will be a sharefolder between host and DSM
- will be used as a 9p mount point in DSM as follow
- First from dsm gui, "Create New Shared Folder" in "File Station" named "9pDataShare"
- Then open a ssh connection to dsm, then create the mount point:
[xpenology]$ sudo mount -t 9p -o trans=virtio,version=9p2000.L,msize=262144 hostdata0 /volume1/9pDatashare
If you want to kinda "passtrough" a full disk, you can do it by:
- Creating a symbolic link on the device
[[email protected]]$ ln -s /dev/disk/by-id/ata-SAMSUNG_XXX /xpenodock/lnk/sdz
- Then add theses parameters to docker command line:
- -e DISK_SIZE="8G /dev/sdz"
- But note that Snapshot won't work anymore by adding a raw disk
Install Xpenology dsm
Once, you've got your xpenology docker running, then follow this tutorial to install xpenology dsm by opening a web page on
Note0: Do not forgot to change vid/pid (as explained in tutorial) to get minor update working
Note1: If you have some issue, please check troubleshooting part of github's README here: https://github.com/uxora-com/xpenology-docker
Forum Xpenology (xpenology.com)
Tutorial: DSM 6.x on Proxmox (Thread on xpenology.com)
Proxmox backup template (Thread on xpenology.com)
Xpenology running on docker (Thread on xpenology.com)
Tutorial to compile xpenology dsm driver (xpenology.club)
Install Xpenology DSM 6.1.x on Proxmox (uxora.com)
Install Xpenology DSM 6.2.x on Proxmox (uxora.com)
Enjoyed this article? Please like it or share it.
NAT Network 188.8.131.52.
I keep getting this error when starting docker for xpenology, could you please help, much appreciated.
0K ........ ........ ........ ........ 64% 201M 0s
32768K ........ ........ .. 100% 249M=0.2s
INFO: Bootloader has been successfully downloaded from URL.
INFO: /image/bootloader.raw file size seems valid for synoboot.
INFO: Bootloader has been converted to qcow2
INFO: No Initial Disk found, creating disk /image/vm-disk-1.qcow2
INFO: KVM acceleration enabled
INFO: Configuring network ...
net.ipv4.ip_forward = 1
INFO: DHCP configured to serve IP 184.108.40.206/24 via dockerbridge
iptables: No chain/target/match by that name.
Well just tried on a new docker, and it still works for me.
It seems to failed on the following command:
# Hack for guest VMs complaining about "bad udp checksums in 5 packets"
$ iptables -A POSTROUTING -t mangle -p udp --dport bootpc -j CHECKSUM --checksum-fill
Not sure why you got this error, but I read that some get this resolves just by restarting Docker:
$ systemctl restart docker
something went wrong detected errors on the hard drives (7,8) and the sata ports have also been disables. Please shut down your ds3615xs to replace or remove the hard drives and try again.
Can you help to solve this?