Arc-V DSM Container
Go to file
2023-04-16 06:00:46 +02:00
.github Update test.yml 2023-04-16 06:00:46 +02:00
agent Increase sleep 2023-04-15 15:01:22 +02:00
serial Error handling 2023-04-14 00:57:26 +02:00
build.sh Update build.sh 2023-04-14 03:27:23 +02:00
disk.sh Fallback for legacy installs 2023-04-15 19:41:54 +02:00
docker-compose.yml Update docker-compose.yml 2023-04-13 16:10:02 +02:00
Dockerfile Remove disk template 2023-04-15 00:32:17 +02:00
install.sh Download location 2023-04-16 05:44:51 +02:00
network.sh Simplify 2023-04-15 12:50:48 +02:00
power.sh Linebreaks 2023-04-15 00:32:02 +02:00
readme.md Update readme.md 2023-04-16 03:50:57 +02:00
run.sh Comments 2023-04-14 18:14:54 +02:00
serial.sh Make CPU model configurable 2023-04-14 15:17:24 +02:00
server.sh Spacing 2023-04-14 15:13:05 +02:00

Virtual DSM for Docker

build_img gh_last_release_svg Docker Image Size Docker Pulls Count

Virtual DSM in a docker container.

Features

  • KVM acceleration
  • Graceful shutdown
  • Upgrades supported

Usage

Via docker-compose.yml

version: "3"
services:
    dsm:
        container_name: dsm
        image: kroese/virtual-dsm:latest
        environment:
            DISK_SIZE: "16G"
        devices:
            - /dev/kvm
        cap_add:
            - NET_ADMIN                       
        ports:
            - 5000:5000
            - 5001:5001
        restart: on-failure
        stop_grace_period: 1m

Via docker run

$ docker run -it --rm -p 5000:5000 --device=/dev/kvm --cap-add NET_ADMIN --stop-timeout 60 kroese/virtual-dsm:latest

FAQ

  • How do I change the size of the virtual disk?

    By default it is 16GB, but you can modify the DISK_SIZE setting in your compose file:

    environment:
      DISK_SIZE: "16G"
    

    To resize the disk to a capacity of 8 terabyte you would use a value of "8T" for example.

  • How do I change the location of the virtual disk?

    By default it resides inside a docker volume, but you can add these lines to your compose file:

    volumes:
      - /home/user/data:/storage
    

    Just replace /home/user/data with the path to the folder you want to use for storage.

  • How do I give the container a dedicated IP address?

    By default the container uses bridge networking, and is reachable by the IP of the docker host.

    If you want to give it a seperate IP address, create a macvlan network that matches your local subnet:

    $ docker network create -d macvlan \
        --subnet=192.168.0.0/24 \
        --gateway=192.168.0.1 \
        --ip-range=192.168.0.100/28 \
        -o parent=eth0 vlan
    

    And change the network of the container to vlan in your run command or compose file:

     --network vlan --ip=192.168.0.100
    

    This has the advantage that you don't need to do any portmapping anymore.

  • How do I change the amount of CPU/RAM?

    By default an amount of 512MB RAM and 1 vCPU is allocated to the container.

    To increase this you can add the following environment variabeles:

    environment:
      CPU_CORES: "4"
      RAM_SIZE: "2048M"
    
  • How do I install a specific version of vDSM?

    By default it installs vDSM 7.2, but if you want to use an older version you can add its URL to your compose file:

    environment:
      URL: "https://global.synologydownload.com/download/DSM/release/7.1.1/42962-1/DSM_VirtualDSM_42962.pat"
    

    You can also switch back and forth between versions this way without loosing your file data.

  • What are the differences compared to standard DSM?

    There are only three minor differences: the Virtual Machine Manager package is not available, Surveillance Station does not include any free licenses, and logging in to your Synology account is not supported.

Acknowledgments

Based on an article by JXCN.

Disclaimer

Only run this container on original Synology hardware, any other use is not permitted and might not be legal.