Difference between revisions of "Docker ARM Synology"

From Servarr
Line 63: Line 63:
 
  /usr/local/etc/rc.d/docker.sh start
 
  /usr/local/etc/rc.d/docker.sh start
  
Reboot.  Then install docker compose:
+
Reboot.   
 +
 
 +
You can try to install docker compose:
  
 
<pre>
 
<pre>
 
sudo curl -L --fail https://raw.githubusercontent.com/linuxserver/docker-docker-compose/master/run.sh -o /usr/local/bin/docker-compose
 
sudo curl -L --fail https://raw.githubusercontent.com/linuxserver/docker-docker-compose/master/run.sh -o /usr/local/bin/docker-compose
 
sudo chmod +x /usr/local/bin/docker-compose
 
sudo chmod +x /usr/local/bin/docker-compose
 +
</pre>
 +
 +
But in our test this failed with
 +
<pre>
 +
Status: Downloaded newer image for ghcr.io/linuxserver/docker-compose:latest
 +
docker: Error response from daemon: OCI runtime create failed: container_linux.go:370: starting container process caused: process_linux.go:459: container init caused: open /dev/ptmx: no such file or directory: unknown.
 
</pre>
 
</pre>

Revision as of 17:20, 11 December 2020

Log in as root to your synology. Download and extract the docker binaries by running:

curl https://download.docker.com/linux/static/stable/aarch64/docker-20.10.0.tgz | tar -xz -C /usr/local/bin --strip-components=1

Create somewhere for the docker files to live:

mkdir -p /volume1/@Docker/lib 
mkdir /docker 
mount -o bind "/volume1/@Docker/lib" /docker

Configure docker:

mkdir -p /usr/local/etc/docker
cat <<EOT > /usr/local/etc/docker/docker.json
{
  "storage-driver": "vfs",
  "iptables": false,
  "bridge": "none",
  "data-root": "/docker"
}
EOT

Enable docker to start on boot:

cat <<'EOT' > /usr/local/etc/rc.d/docker.sh
#!/bin/sh
# Start docker daemon

NAME=dockerd
PIDFILE=/var/run/$NAME.pid
DAEMON_ARGS="--config-file=/usr/local/etc/docker/docker.json --pidfile=$PIDFILE"

case "$1" in
    start)
        echo "Starting docker daemon"
        mount -o bind "/volume1/@Docker/lib" /docker
        /usr/local/bin/dockerd $DAEMON_ARGS &
        ;;
    stop)
        echo "Stopping docker daemon"
        kill $(cat $PIDFILE)
        ;;
    *)
        echo "Usage: "$1" {start|stop}"
        exit 1
esac
exit 0
EOT

chmod 755 /usr/local/etc/rc.d/docker.sh

Create the docker group, replacing MYUSERNAME with the username you use to log in with SSH

synogroup --add docker root MYUSERNAME

Start it!

/usr/local/etc/rc.d/docker.sh start

Reboot.

You can try to install docker compose:

sudo curl -L --fail https://raw.githubusercontent.com/linuxserver/docker-docker-compose/master/run.sh -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

But in our test this failed with

Status: Downloaded newer image for ghcr.io/linuxserver/docker-compose:latest
docker: Error response from daemon: OCI runtime create failed: container_linux.go:370: starting container process caused: process_linux.go:459: container init caused: open /dev/ptmx: no such file or directory: unknown.