Skip to content

Commit 5b0655c

Browse files
author
Joao Fernandes
committed
Review Docker EE e2e upgrade
1 parent 60d9b42 commit 5b0655c

File tree

1 file changed

+39
-10
lines changed

1 file changed

+39
-10
lines changed

enterprise/upgrade.md

Lines changed: 39 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@ following components:
1212
2. Universal Control Plane (UCP).
1313
3. Docker Trusted Registry (DTR).
1414

15-
While upgrading some of these components will become temporarily unavailable.
16-
So you should schedule your upgrades to take place outside business peak hours,
15+
While upgrading, some of these components will become temporarily unavailable.
16+
So you should schedule your upgrades to take place outside business peak hours
1717
to make sure there's no impact to your business.
1818

1919
## Create a backup
@@ -29,19 +29,42 @@ You may also want to check the
2929
[Docker EE maintenance lifecycle](https://success.docker.com/Policies/Maintenance_Lifecycle),
3030
to understand until when your version will be supported.
3131

32-
## Upgrade Docker EE
32+
## Upgrade Docker Engine
3333

34-
Start by sequentially upgrading the Docker Engine running on each node.
34+
To avoid application downtime, you should be running Docker in Swarm mode and
35+
deploying your workloads as Docker services. That way you'll be able to
36+
drain the nodes of any workloads before starting the upgrade.
37+
38+
If you have workloads running as containers as opposed to swarm services,
39+
make sure they are configured with a [restart policy](/engine/admin/start-containers-automatically/).
40+
This will make sure your containers are started automatically after the upgrade.
41+
42+
To ensure that workloads running as Swarm services have no downtime, you need to:
43+
44+
1. Drain the node you want to upgrade so that services get scheduled in another node.
45+
2. Upgrade the Docker Engine on that node.
46+
3. Make the node available again.
47+
48+
If you do this sequentially for every node, you'll be able to upgrade with no
49+
application downtime.
3550
When upgrading manager nodes, make sure the upgrade of a node finishes before
3651
you start upgrading the next node. Upgrading multiple manager nodes at the same
3752
time can lead to a loss of quorum, and possible data loss.
3853

39-
Before upgrading the Docker Engine on a node, drain the node so that any
40-
workloads running on the node get scheduled in some other node. You can do
41-
this by running `docker node update --availability drain <node>` on a manager
42-
node.
54+
### Drain the node
55+
56+
Start by draining the node so that services get scheduled in another node and
57+
continue running without downtime.
58+
For that, run this command on a manager node:
4359

44-
Follow the upgrade instructions for your specific distribution:
60+
```
61+
docker node update --availability drain <node>
62+
```
63+
64+
### Perform the upgrade
65+
66+
Upgrade the Docker Engine on the node by following the instructions for your
67+
specific distribution:
4568

4669
* [Windows Server](/engine/installation/windows/docker-ee.md#update-docker-ee)
4770
* [Ubuntu](/engine/installation/linux/docker-ee/ubuntu.md#upgrade-docker-ee)
@@ -50,8 +73,14 @@ Follow the upgrade instructions for your specific distribution:
5073
* [Oracle Linux](/engine/installation/linux/docker-ee/oracle.md#upgrade-docker-ee)
5174
* [SLES](/engine/installation/linux/docker-ee/suse.md#upgrade-docker-ee)
5275

76+
### Make the node active
77+
5378
Once you finish upgrading the node, make it available to run workloads. For
54-
this, run `docker node update --availability active <node>`.
79+
this, run:
80+
81+
```
82+
docker node update --availability active <node>
83+
```
5584

5685
## Upgrade UCP
5786

0 commit comments

Comments
 (0)