New Rockstor User: Docker-CE?

Hi Rock-folks :slight_smile:

I’ve been playing with Rockstor for a few days now in a VM. At first I was reading community posts about how -stable had docker-ce (vs docker) so I took the plunge and spent $34CAD ($20UK->CAD) for a stable license. I installed an installer-recipe version of 4.0.4 which took the key but I do not see any option to upgrade Docker to Docker-CE? All my compose files are v3.4 and the docker running in this 4.0.4 image is far too old and dependencies on Rockstor.

I would really like to move from OMV to Rockstor but this docker-ce business is the last hurdle I need to overcome. I now own a stable license, how do I get docker-ce (v20 minimum) instead of this old non-CE docker that doesn’t understand my compose files?

Hi @flatine69, and welcome to the community.

Thank you for supporting Rockstor’s development! I’ll try to bring some information that will hopefully help.

Thank you as well for using our installer recipe and running Rockstor-4.0.4. Docker (non-CE) was the package used back in our now very old ISO installer on CentOS base, and was updated to Docker-ce later down the road. This means that the only system on which Docker (non-CE) would still be installed would be Rockstor-3.9.1-0. In other words, we now rely (especially in Rockstor 4) on upstream repositories from openSUSE to install docker, which thus installs docker-ce:

# yum info docker
Installed Packages
Name         : docker
Version      : 19.03.11_ce
Release      : lp152.1.1
Architecture : x86_64
Size         : 143 M
Source       : docker-19.03.11_ce-lp152.1.1.src.rpm
Repository   : @System
Summary      : The Moby-project Linux container runtime
URL          : http://www.docker.io
License      : Apache-2.0
Description  : Docker complements LXC with a high-level API which operates at the process
             : level. It runs unix processes with strong guarantees of isolation and
             : repeatability across servers.
             :
             : Docker is a great building block for automating distributed systems: large-scale
             : web deployments, database clusters, continuous deployment systems, private PaaS,
             : service-oriented architectures, etc.

Could you verify what is installed on your system?

yum info docker

as welll as Rockstor version just to make sure:

yum info rockstor

This should give us a better idea of what is going on.

1 Like

Hi @Flox

Does this mean I need to redo my activation key for 3.9.1 in order to get a newer docker-ce? Sorry, I can’t copy text from my vbox window so I have to use images:

My info:

1 Like

Thanks for the additional information, it looks like you have the latest available package and everything installed as it should! It’s actually the expected behavior as the kiwi-ng tool we use for the Rockstor-installer fetches all the latest available packages during its creation. :slight_smile:

No. The activation code is independent on the installed Rockstor version and the only thing to which it is linked is your Appliance ID (which you can update yourself as needed using our dedicated utility: https://appman.rockstor.com/).
Now, as stated above, you already have the latest running Docker-ce package from the openSUSE Leap15-2 repository, which is docker-ce v19.03.11. I’m unsure when docker-ce v20 will be available in the upstream repositories but there are probably a lot of reasons for that not to be the case yet. It seems that even Tumbleweed still runs Docker-ce v19 (19.03.14, openSUSE Software), for instance.

If I’m not mistaken, the current docker-ce version should still be more than enough to be compatible with docker compose v3.4 files, so you shouldn’t have a problem using those. See the compatibility on the docker docs:

Note that docker-compose itself isn’t installed by default on Rocsktor (not yet, though), but you should be able to install it if needed:

zypper install --no-recommends docker-compose

Hope this helps :slight_smile:

1 Like

Thanks for the detailed information @Flox

I ran into this “issue” with docker when I applied the work-around for using portainer instead of rockons (the json is painful compared to compose files) which stated my installed version of docker did not support v3 in trying to configure the stack within portainer.

Now I know this is an unsupported configuration (portainer) but I’m very used to it. Perhaps I just did something wrong on my end and will try again.

So onto the activation part – when I eventually move Rockstor from VM to my actual NAS (currently running OMV) I can use the appman link to reconfigure my registration key for my physical hardware? When I registered I used the appID from the VM I’m testing Rockstor in but the intent was to move it to my actual physical NAS.

Thanks so much for taking the time to explain this to me.

1 Like

Just to answer my own question and future viewers: Yes, I was able to easily change my appID using the appman link above – stood up a new VM, presto. Just that easy.

1 Like

Thanks for the additional details… and thank you for bringing the attention back to portainer. We have had a pull request for a portainer rock-on but due to its particularity it required more thoughts into how to offer it. Note that one can still install it locally as per our README instructions:

Thanks to you, though, I noticed that the image proposed to be used in that pull request has now been deprecated so we would need to update that as well. For reference, the pull request in question is the one linked below:

Personally, the main point that needs to be clear is that the volume management done by Portainer will be separate from the one done by Rockstor, which means that a good alternative described by a user in that PR would be to first create the shares to be used in Rockstor, and then bind them to the desired containers in Portainer.

Yes, rock-ons do attempt to provide a very easy interface to docker containers by taking as much of the manual configuration as possible out of the equation. It’s a part of Rockstor under active development and its possibilities keep expanding. If you already are familiar with docker compose and have your own stack ready to deploy, however, I agree that you’re better off running it directly.

Glad you like it, it’s really a nice utility put together by @phillxnet!

3 Likes

Hey, I also try to use Docker-Compose - but unfortunately the package is not available by default in Rockstor on openSUSE Leap 15.4

My Workstation is running openSUSE Leap 15.5 and there the package is in:
http://download.opensuse.org/distribution/leap/15.5/repo/oss/

I have checked it only, docker-compose is listed in this 15.5 repo, but not in the equivalent 15.4 repo (which is an active repo for rockstor by default).

Also the links provided by the official docker documentation (for SLES) does not resolve correctly (unfortunatelly I haven’t saved the errors).

Does anyone know where I can find a proper docker-compose package for Leap 15.4?
… or should I include the Leap 15.5 repo with a lower priority :face_with_spiral_eyes:?

I used the python3-docker-compose package and it does only partially work. E.g. I can’t use $ docker compose , only $ docker-compose command (but I have other issues too, e.g. with the --profile option)

Best regards
Simon

Hi, a workaroud is to use stacks on portainer. Easy to install, just activate rockons and install using terminal. Point to a place where you want the portainer config files stored, preferably a different share than rockons.

Example
docker run -d -p 9000:9000 -p 9443:9443 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v /mnt2/store/docker/portainer:/data portainer/portainer-ce:latest

Cheers
Erik

1 Like

Thanks @eriklysoe for your advice.
Although I like portainer very much as a dashboard and for debuging - I still prefere docker compose for deploying and updating the services.

I am still a bit confused that I could not find a repository for openSUSE Leap 15.4 that provides docker-compose … but I eventually just installed the compose plugin manually:

Official Docker Compose Installation Guid
Effectively downloading one file and making it executable for this one user:

DOCKER_CONFIG=${DOCKER_CONFIG:-$HOME/.docker}
mkdir -p $DOCKER_CONFIG/cli-plugins
curl -SL https://github.com/docker/compose/releases/download/v2.20.3/docker-compose-linux-x86_64 -o $DOCKER_CONFIG/cli-plugins/docker-compose
chmod +x $DOCKER_CONFIG/cli-plugins/docker-compose

Cheers
Simon

3 Likes