November 8,2018 was a great day for Docker community as we saw new stable release for community edition Docker 18.09 CE afer moving to the new release and support cadence.This will be supported for 7 months with Docker 19.03 CE being the next release in line.
Along with this being an Enterprise customer we are excited to have Docker Enterprise 2.1 which adds support for Windows Server 1709, 1803 and Windows Server 2019. Read more about this in the blog from Docker team.
The one feature I was keen to test on was upgrading CE engine to EE engine using the Docker cli. Here are the steps I followed to upgrade a CentOS machine running 17.12.0-ce engine to 18.09 (EE engine).
Lets add the stable repository so that we have the latest pacakges to install the new release of Docker CE.
To install specific version of Docker instead of always using the latest, firt list the available versions.
$ sudo yum list docker-ce –showduplicates
The standard way of installing a specific version is $ sudo yum install <FULLY-QUALIFIED-PACKAGE-NAME>
The version string is the package name plus the version up to the first hyphen. In the example above, the fully qualified package name is docker-ce-18.09.0
Let’s upgrade Docker to 18.09
There are certain requirements to activate the EE engine from a CE:
The Docker Community Edition (CE) version must be 18.09 or higher.
All of the Docker packages must be installed: docker-cli, docker-server, and containerd.
A valid Docker EE license (obtain it from the Docker Hub under your organization profile)
At this point this feature has some limitations:
Only supported on x86 Linux nodes.
Windows nodes are not currently supported.
Node-level Engine activation between CE and EE is only supported in the same version of Docker Enterprise Engine for Docker.
Prior version of Docker CE do not support this feature
Considering the above requirements and limitation lets check the version of Docker to ensure that we can do a CE-EE node activation
NOTE: When running the command docker login, the shell stores the credentials in the current user’s home directory. RHEL and Ubuntu-based Linux distributions have different behavior for sudo. RHEL sets $HOME to point to /root while Ubuntu leaves $HOME pointing to the user’s home directory who ran sudo and this can cause permission and access problems when switching between sudo and non-sudo’d commands.
This is something I missed during my steps and thanks to Docker team for helping me out in resolving this issue.
Here is the new Management command available in this release:
Make sure you have downloaded your license file from Docker Store to activate the license using the command below:
The reason this failed is because you need to login to your dockerhub using the same userid which you used to download the license file.
Lets activate the EE license
Once you restart the system and execute the below command you may see the Server as “Docker Engine - Enterprise” while the Client is still on the Community