Upgrading / migrating from docker 1.10.3 to docker community latest version (19.03)

Dear Community,

We are current using docker 1.10.3 for our non prod servers, and various DevOps tools.The version is almost 3.5 years old now, and we are missing out on orchestration capabilities and other new features.

Can we check if its possible to upgrade to latest docker community engine (19.03.1), and have following queries in this regard:

  1. We are using docker across 10+ VMs, where one VM is swarm leader and other are nodes.
  2. If this upgrade is possible, will our existing containers be compatible with new docker
  3. If we continue to use docker swarm, does this only provide a CLI or it also provides some web interface / UI to manage nodes?

Thank You,
Ashish

You decide yourself, which host initiates the swarm and is the first manager node. Then you can add your nodes one by one as manager or worker nodes. With 10VMs I would strongly suggest to use three manager nodes to prevent the whole cluster not to be headless when a single manager is down.

This is a vague question. Do you mean wether the images will be still usable to create your containers OR do you realy plan to replace the engine and continue to use the existing containers?

What is wrong about re-creating the containers with the new engine?

A cli is provided by default. You can use portainer, swarmpit or any other management ui for swarm.

Thanks for your reply, this helps. Is there any documentation on guide as well to help proceed us with the upgrade?

I am afraid you won’t find any. Your current version is a “pre community edition” version. The release notes start with 17.03, which is the direct successor of 1.13.1.

To be on the safe side, you can read the release notes for each and every CE release.

Though, if you used a volume/graph driver for your volumes that is not supported anymore, you might want to stop your containers, backup the volumes and restore them after the upgrade. This is not necessary for binds (-v /host/path:/container/path), as they are not managed by the volume/graph driver.

If you are already on overlayfs2 or btrfs you can skip the backup part. If you are on aufs or devicemapper you should definitly backup your volumes. The availability of Storage drivers depends on your OS. Also the availability of the latest Docker version is OS specific. There is no CE for RHEL or Suse, just EE, which requires a cpu based licensing (till a couple of months ago it was a per node license).

Thank you very much for further insights, I think we have a lot of planning to do. We are currently using devicemapper. Also we are on RHEL 7 :frowning_face:

Uff, this is the worst case scenario.

Though, just to give full facts: people managed to get the CentOS Docker-CE version work with RHEL as well. Instead of creating a franken-docker installation, I would strongly advice to switch your base OS to CentOS or get a EE subscription.

In production, we do run Docker EE 2.1 with a 18.09.x engine on RHEL 7.6. The latest docker package from the RHEL repos is 1.13.x, which is pretty old. There is no Docker-CE for RHEL. With RHEL8, even the old docker package is not available in the RHEL repos anymore. Even for Docker EE, as of today the latest supported RHEL version is 7.6 cough

We already planned the update to Docker EE 3.0 with the 19.03.1 engine.

Than you Metin.

This was going to be my next question, but even to reach this stage we have a lot of work to do. I really appreciate all the inputs provided by you, its really useful. Thank you once again.

1 Like