rexray / rexray

REX-Ray is a container storage orchestration engine enabling persistence for cloud native workloads
http://rexray.io
Apache License 2.0
2.17k stars 327 forks source link

docker plugin wont install #1194

Open exocode opened 6 years ago

exocode commented 6 years ago

Summary

Cannot install docker plugin for rexray which is described on the Rexray docs: http://rexray.readthedocs.io/en/v0.8.0-rc2/user-guide/docker-plugins/

My goal is to install rexray to a VirtualBox and connect to it via Docker.

docker plugin install rexray/driver:latest

Error response from daemon: pull access denied for rexray/driver, repository does not exist or may require 'docker login'

Version

~ docker version
Client:
 Version:   18.02.0-ce
 API version:   1.35 (downgraded from 1.36)
 Go version:    go1.9.4
 Git commit:    fc4de44
 Built: unknown-buildtime
 OS/Arch:   darwin/amd64
 Experimental:  false
 Orchestrator:  swarm

Server:
 Engine:
  Version:  17.12.1-ce
  API version:  1.35 (minimum version 1.12)
  Go version:   go1.9.4
  Git commit:   7390fc6
  Built:    Tue Feb 27 22:20:43 2018
  OS/Arch:  linux/amd64
  Experimental: false
➜  ~

Expected Behavior

Plugin should be installed.

Actual Behavior

Plugin does not install.

Scapal commented 6 years ago

Same here but a bit further.

Client:
 Version:   18.03.0-ce
 API version:   1.37
 Go version:    go1.9.4
 Git commit:    0520e24
 Built: Wed Mar 21 23:10:06 2018
 OS/Arch:   linux/amd64
 Experimental:  false
 Orchestrator:  swarm

Server:
 Engine:
  Version:  18.03.0-ce
  API version:  1.37 (minimum version 1.12)
  Go version:   go1.9.4
  Git commit:   0520e24
  Built:    Wed Mar 21 23:08:35 2018
  OS/Arch:  linux/amd64
  Experimental: false
# docker plugin install 
Plugin "rexray/rbd" is requesting the following privileges:
 - network: [host]
 - mount: [/dev]
 - mount: [/etc/ceph]
 - allow-all-devices: [true]
 - capabilities: [CAP_SYS_ADMIN]
Do you grant the above permissions? [y/N] y
latest: Pulling from rexray/rbd
20d5e3d9f105: Download complete 
Digest: sha256:4ea5ae92c7bfec0d7f7b227deddf6520019b9fb764663fd24782ba56bc9d4052
Status: Downloaded newer image for rexray/rbd:latest
Error response from daemon: dial unix /run/docker/plugins/aaaf72bea149f38f26c059f418e1179cd8c4a5b22de773fb9ada7e1f87c51675/rexray.sock: connect: no such file or directory

rbd works properly on the host computer.

clintkitson commented 6 years ago

Hello @exocode,

There is no VirtualBox docker plugin, so you will have to use it as a non-managed plugin. Check the VagrantFile's we have in the main directory.

clintkitson commented 6 years ago

@scapal Are you sure that the same ENV/Config variables are being populated if you are saying it works already outside of the managed plugin?

exocode commented 6 years ago

Ok for those who run into the same problems. I found the following Articles. It maybe helps someone.

My last questions are: when I setup rexray successfully in two Virtualboxes:

Many thanks in advance

Explanations to setup rexray in Virtualbox.

The suggested "Vagrant" file is to install create virtualboxes, installs rexray on it and starts rexray. The script scaffolds them. If you inspect that Vagrant file, you will see each step which is necessary to spin up Virtualbox and rexray, which is explained in the first three links.

Scapal commented 6 years ago

@clintkitson downgrading docker-ce from 18.03.0-ce to 17.12.1-ce make it work.

jeff-r-koyaltech commented 6 years ago

I have one small thing to note with this error:

"repository rexray/SuchAndSuch not found"

The environment variables being suffixed on the end of the plugin command matter. My experience on my docker swarm in Google Cloud, this command fails:

docker plugin install rexray/driver:latest

But if I add the GCEPD_TAG environment variable (per RexRay's documentation), Then the command works. For example:

docker plugin install rexray/gcepd GCEPD_TAG=rexray

Plugin "rexray/gcepd" is requesting the following privileges:
 - network: [host]
 - mount: [/dev]
 - allow-all-devices: [true]
 - capabilities: [CAP_SYS_ADMIN]
Do you grant the above permissions? [y/N]
clintkitson commented 6 years ago

Thanks for this @langboost. In this case it sounds like the GCE driver is erroring when a rexray tag is not present at GCE or specified via RR. @codenrhoden is this accurate?

Psyborgue commented 5 years ago

I'm getting this same issue.

Rexray is installed, s3fs is installed, I can create and mount a volume with "rexray volume create", so that works and it's tested and good. The docker plugin on the other hand....

Docker info excerpt:

Server Version: 18.09.0
Storage Driver: btrfs
 Build Version: Btrfs v4.7.3
 Library Version: 101
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: c4446665cb9c30056f4998ed953e6d4ff22c7c39
runc version: 4fc53a81fb7c994640722ac585fa9ca548971871
init version: fec3683
Security Options:
 apparmor
 seccomp
  Profile: default
Kernel Version: 4.15.0-43-generic
Operating System: Ubuntu 18.04.1 LTS

Rexray has created a socket at /run/docker/plugins/rexray.sock

 $ ss -l | grep rexray
u_str             LISTEN              0                    128                                                                  /run/docker/plugins/rexray.sock 95292                                                      * 0                  
u_str             LISTEN              0                    128                                                                   /var/run/rexray/059978828.sock 94719

But docker is looking for it elsewhere:

$ sudo docker plugin install rexray/s3fs:latest
Plugin "rexray/s3fs:latest" is requesting the following privileges:
 - network: [host]
 - mount: [/dev]
 - allow-all-devices: [true]
 - capabilities: [CAP_SYS_ADMIN]
Do you grant the above permissions? [y/N] y
latest: Pulling from rexray/s3fs
b5ce7aed9a2b: Download complete 
Digest: sha256:f06a8d9e64e6d616298646082c33252703af807b274288643e9668789d06cd1e
Status: Downloaded newer image for rexray/s3fs:latest
Error response from daemon: dial unix /run/docker/plugins/c262e0b2100b529478dd8b5f46228a3ee39cc800e155163a37694a42a94b0347/rexray.sock: connect: no such file or directory

Is there any way to specify the location of where the socket is? Because rexray/s3fs doesn't seem to be looking in the right place.

Psyborgue commented 5 years ago

So I solved the issue for me. The problem was that the rexray/s3fs plugin needed credentials and settings at install time. It couldn't grab them from /etc/rexray/config.yml

What worked was

 $ sudo docker plugin install rexray/s3fs \
> S3FS_ACCESSKEY=verylongaccesskeyhere \
> S3FS_SECRETKEY=veryverylongsecretkey \
> S3FS_ENDPOINT=protocolhere://hostnamehere:porthere
Plugin "rexray/s3fs" is requesting the following privileges:
 - network: [host]
 - mount: [/dev]
 - allow-all-devices: [true]
 - capabilities: [CAP_SYS_ADMIN]
Do you grant the above permissions? [y/N] y
latest: Pulling from rexray/s3fs
b5ce7aed9a2b: Download complete 
Digest: sha256:f06a8d9e64e6d616298646082c33252703af807b274288643e9668789d06cd1e
Status: Downloaded newer image for rexray/s3fs:latest
Installed plugin rexray/s3fs

Now everything works. Helpful was journalctl -u docker.service (docker daemon logs) letting me know that service startup failed: libstorage: NoCredentialProviders: no valid providers in chain