[PACKAGE] Docker v18.03.1 CE for WD My Cloud

OK, i am back again attempting to get it up and running on the DL4100.
I have installed the latest docker, which seems to work fine with a few exceptions.

# docker info
Containers: 3
 Running: 1
 Paused: 0
 Stopped: 2
Images: 3
Server Version: 18.09.1
Storage Driver: vfs
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: bridge host macvlan null overlay
 Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 9754871865f7fe2f4e74d43e2fc7ccd237edcbce
runc version: 96ec2177ae841256168fcf76954f7177af9446eb
init version: fec3683
Security Options:
 seccomp
  Profile: default
Kernel Version: 3.10.38
OSType: linux
Architecture: x86_64
CPUs: 2
Total Memory: 5.819GiB
Name: WDMyCloudDL4100
ID: VVTX:QQ3A:SYBU:SWBB:2VRA:FB4A:QZWA:XRCV:22SY:TPGQ:UUH7:U6FZ
Docker Root Dir: /mnt/HD/HD_a2/Nas_Prog/_docker
Debug Mode (client): false
Debug Mode (server): true
 File Descriptors: 26
 Goroutines: 48
 System Time: 2019-05-24T10:31:49.028676311-04:00
 EventsListeners: 0
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
 127.0.0.0/8
Live Restore Enabled: false
Product License: Community Engine

# docker --version
Docker version 18.09.1, build 4c52b90

# which docker
/sbin/docker

# ls -l /var/lib
lrwxrwxrwx    1 root     root            33 May 24 08:00 docker -> /shares/Volume_1/Nas_Prog/_docker
drwxr-xr-x    2 root     root             0 May 24 07:39 dpkg
drwxr-xr-x    2 root     root             0 May 24 07:39 samba

# ls -l ../_docker
drwx------    2 root     root          4096 May 24 08:00 builder
drwx------    4 root     root          4096 May 24 08:00 buildkit
drwx------    3 root     root          4096 May 24 08:00 containerd
drwx------    4 root     root          4096 May 24 09:01 containers
-rw-r--r--    1 root     root        202392 May 24 09:01 docker.log
drwx------    3 root     root          4096 May 24 08:00 image
drwxr-x---    3 root     root          4096 May 24 08:00 network
drwx------    4 root     root          4096 May 24 08:00 plugins
drwx------    2 root     root          4096 May 24 08:10 runtimes
drwx------    2 root     root          4096 May 24 08:00 swarm
drwx------    2 root     root          4096 May 24 08:12 tmp
drwx------    2 root     root          4096 May 24 08:00 trust
drwx------    3 root     root          4096 May 24 08:10 vfs
drwx------    2 root     root          4096 May 24 08:00 volumes

 # sh stop.sh .
DOCKER stop: stop daemon
Remaining mounts:

# sh start.sh .
DOCKER START: setup daemon
DOCKER START: start daemon
CONTAINER ID        IMAGE                      COMMAND                  CREATED             STATUS              PORTS                                  NAMES
22facdd234f6        nicolargo/glances:latest   "/bin/sh -c 'python …"   26 seconds ago      Up 14 seconds       0.0.0.0:61208-61209->61208-61209/tcp   glances

I am unable to mount the docker.sock in a container.
When starting portainer, or glances this is the result:

docker: Error response from daemon: OCI runtime create failed: container_linux.go:344: starting container process caused "process_linux.go:424: container init caused \"rootfs_linux.go:58: mounting \\\"/var/run/docker.sock\\\" to rootfs \\\"/mnt/HD/HD_a2/Nas_Prog/_docker/vfs/dir/629fa619f5aa122f98f5bb0e46084d1aa226cff9ae5c8c4aa988773af4a89004\\\" at \\\"/mnt/HD/HD_a2/Nas_Prog/_docker/vfs/dir/629fa619f5aa122f98f5bb0e46084d1aa226cff9ae5c8c4aa988773af4a89004/run/docker.sock\\\" caused \\\"invalid argument\\\"\"": unknown.

it is worth noting, in my logs there is this in regards to docker.sock:

time="2019-05-21T15:04:02.721782955-04:00" level=warning msg="could not change group /var/run/docker.sock to docker: group docker not found"

EDIT:
To further discuss the issue, it appears to be a permission issue. I also cannot mount /etc/timezone.

docker: Error response from daemon: OCI runtime create failed: container_linux.go:344: starting container process caused "process_linux.go:424: container init caused \"rootfs_linux.go:58: mounting \\\"/etc/timezone\\\" to rootfs \\\"/mnt/HD/HD_a2/Nas_Prog/_docker/vfs/dir/af35f714931fdf855de6b1fcc33b984490ab2f0cddf67f32f22df089eeb17ecb\\\" at \\\"/mnt/HD/HD_a2/Nas_Prog/_docker/vfs/dir/af35f714931fdf855de6b1fcc33b984490ab2f0cddf67f32f22df089eeb17ecb/etc/timezone\\\" caused \\\"invalid argument\\\"\"": unknown.

@bigrob8181 Have your tried deleting the Nas_Prog/_docker dir?
Make sure you stop/shutdown the daemon first (e.g. disable docker in the GUI).
After deleting it, reinstall the docker binary.
You’re working with docker v18.09 right?

So I’ve downloaded Docker install from https://wdcommunity.com/, but when I load it up on host:9000. I get Twonky Server and not Docker or Portainer. What is going on?

See my reply in https://github.com/WDCommunity/wdpksrc/issues/37

I followed your directions, shutdown docker via gui. Deleted _docker. Followed the commands above to reinstall. Rebooted. Same issues.

One thing i have noticed, there is not storagemapper folder in the newly created _docker folder. It is the only thing i can see that is missing from the _docker.bak folder.

I am working with 18.09 as indicated above in my previous post. Docker works fine minus mounting certain files/folders as volumes. Additionally the shutdown is not clean, i have to manually umount /mnt/HD/HD_a2/Nas_Prog/_docker.

I did just copy the storagemapper dir from _docker.bak to _docker to see if there is any other changes.

# cat /proc/self/mounts | grep docker
/dev/sda2 /mnt/HD/HD_a2/Nas_Prog/_docker ext4 rw,noatime,nodiratime,nobarrier,quota,usrquota,grpquota,stripe=128,data=ordered 0 0

# umount /mnt/HD/HD_a2/Nas_Prog/_docker

Good work with the docker update! For arm based drives I created docker-compose https://github.com/aleksanderlech/armv7-docker-compose

1 Like

Can i install docker on a WD My Cloud GEN2 ???

Version 19.03.2 is now available! Thanks again @JediNite for creating the ARM binaries.

I wonder if anyone here could help me. Trying to get this running on an EX4100. I’ve downloaded and installed the binaries from wdcommunity. Disabled twonky etc.

This is what I’m seeing:
root@WDNAS docker # ./install.sh .
Installing with APPDIR: /docker / /docker
BusyBox v1.31.0 () multi-call binary.

Usage: cp [OPTIONS] SOURCE… DEST

Copy SOURCE(s) to DEST

    -a      Same as -dpR
    -R,-r   Recurse
    -d,-P   Preserve symlinks (default if -R)
    -L      Follow all symlinks
    -H      Follow symlinks on command line
    -p      Preserve file attributes if possible
    -f      Overwrite
    -i      Prompt before overwrite
    -l,-s   Create (sym)links
    -T      Treat DEST as a normal file
    -u      Copy only newer files

./install.sh: cd: line 23: can’t cd to /docker
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:–:-- --:–:-- --:–:-- 0curl: (23) Failed writing body (0 != 1362)
No orig daemon found
ln: /sbin/*: File exists
Creating new docker root
./install.sh: line 68: /docker/daemon.sh: not found
./install.sh: line 73: /docker/daemon.sh: not found
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
docker: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?.

I’ve tried a great many things, but I’m not an expert at this. Suggestions?

If you face issues, please create a new ticket on github.
No need to trigger everybody in this thread.

Did you find the fix? I have same issue with any container which needs volume mounted.

I have not. I am not convinced it works on the dl4100 despite the files being built. I abandoned the idea of having docker several times now, but keep coming back to try again. Actually today i am wiping the nas and attempting to start from scratch to see if there are any different results.

I am also on the same boat, I have DL2100 and tried several time. I am trying to setup OwnCloud. May be if I try with stock docker it will work. I will PM you and let you know my finding. I am also on path to start fresh.

1 Like

I compiled the kernel from source for PR4100 and installed the 3 modules you mentioned. The overlay networks are being created successfully and I can run services on them without a problem but when I publish a port on the ingress network I can’t access the service using the NAS ip address (I tried both with curl from the NAS itself and from another computer). When I do the same thing on my desktop pc (on a separate single-node swarm cluster) it works fine and I can access the service without a problem.

Any ideas what might be the issue with this? One example service I’m creating is:

docker service create --name foobar --publish 8000:80 nginx

EDIT:
Ok, turns out it’s the routing mesh that doesn’t work which is not a huge issue for me as I’m planning to use this as a single node swarm. So to resolve this I created my services with the dnsrr endpoint-mode and published the ports directly on the swarm node instead of the ingress network. For example the above would become:

docker service create --name foobar --endpoint-mode dnsrr --publish mode=host,target=80,published=8000 nginx

Curious if there are any good tutorials for getting this running on a PR2100. I’d like to host my own Bitwarden server, and I’m not a Linux pro. Many of the instructions here I’m not quite following from a where to start perspective. I installed the Docker bin file on my NAS, but from there what steps to take to actually get Bitwarden up and running are a mystery to me. Any guidance would be appreciated. Thanks!

I installed docker compose following this guide I do have some issues and able to get around them. However, what I’m finding is after my NAS restarts or the power goes out (I live in an apartment) I lose my docker images, configurations (in /var/lib/), docker compose and the permissions I’ve set on the folders. Any advice?

Did you figure this one out? I think I’m having a similar issue where my torrents are only stored within the container’s image instead of the physical filesystem

Hello,

I have a problem to start the dockerd daemon. Here is the output from my terminal window:

Blockquote

root@WDMyCloud docker # docker -v
Docker version 19.03.2, build 6a30dfc
root@WDMyCloud docker # dockerd -D
INFO[2020-06-22T15:56:19.703372840-07:00] Starting up
WARN[2020-06-22T15:56:19.723269640-07:00] could not change group /var/run/docker.sock to docker: group docker not found
DEBU[2020-06-22T15:56:19.724116080-07:00] Listener created for HTTP on unix (/var/run/docker.sock)
WARN[2020-06-22T15:56:19.725204400-07:00] unable to modify root key limit, number of containers could be limited by this quota: open /proc/sys/kernel/keys/root_maxkeys: no such file or directory
DEBU[2020-06-22T15:56:19.727195440-07:00] Golang’s threads limit set to 7110
INFO[2020-06-22T15:56:19.729337000-07:00] parsed scheme: “unix” module=grpc
INFO[2020-06-22T15:56:19.729552200-07:00] scheme “unix” not registered, fallback to default scheme module=grpc
INFO[2020-06-22T15:56:19.729814360-07:00] ccResolverWrapper: sending update to cc: {[{unix:///run/containerd/containerd.sock 0 }] } module=grpc
INFO[2020-06-22T15:56:19.730016400-07:00] ClientConn switching balancer to “pick_first” module=grpc
INFO[2020-06-22T15:56:19.730516520-07:00] pickfirstBalancer: HandleSubConnStateChange: 0x3d75880, CONNECTING module=grpc
INFO[2020-06-22T15:56:19.730732280-07:00] blockingPicker: the picked transport is not ready, loop back to repick module=grpc
WARN[2020-06-22T15:56:39.731319120-07:00] grpc: addrConn.createTransport failed to connect to {unix:///run/containerd/containerd.sock 0 }: didn’t receive server preface in time. Reconnecting… module=grpc
INFO[2020-06-22T15:56:39.731667360-07:00] pickfirstBalancer: HandleSubConnStateChange: 0x3d75880, TRANSIENT_FAILURE module=grpc
DEBU[2020-06-22T15:56:39.732372720-07:00] Cleaning up old mountid : start.
failed to start daemon: failed to dial “/run/containerd/containerd.sock”: all SubConns are in TransientFailure, latest connection error: timed out waiting for server handshake: unavailable
root@WDMyCloud docker #

Blockquote

Can someone help how to resolve this?

Thank you in advance

i cant connect to port 9000 it says " refused to connect"

Hi,

I’ve just been looking at this and I am wondering if there is something recently that changed with new firmware updates from WD that has broken this functionality, as I am also getting the same thing with docker 19.03.8. I also found that when trying to build the new version of docker (19.03.12) on the WD EX4100, that the network within the containers was not connecting either, so something appears to have changed. I’ll keep investigating and if I find anything will share to the group.

Cheers,

JediNite