@@ -12,8 +12,8 @@ following components:
12
12
2 . Universal Control Plane (UCP).
13
13
3 . Docker Trusted Registry (DTR).
14
14
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
17
17
to make sure there's no impact to your business.
18
18
19
19
## Create a backup
@@ -29,19 +29,43 @@ You may also want to check the
29
29
[ Docker EE maintenance lifecycle] ( https://success.docker.com/Policies/Maintenance_Lifecycle ) ,
30
30
to understand until when your version will be supported.
31
31
32
- ## Upgrade Docker EE
32
+ ## Upgrade Docker Engine
33
33
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 to [ configure the Docker Engine with live restore] ( /engine/admin/live-restore.md ) .
40
+ This will allow your containers to continue running while the Docker Engine is
41
+ stopped and being upgraded.
42
+
43
+ To ensure that workloads running as Swarm services have no downtime, you need to:
44
+
45
+ 1 . Drain the node you want to upgrade so that services get scheduled in another node.
46
+ 2 . Upgrade the Docker Engine on that node.
47
+ 3 . Make the node available again.
48
+
49
+ If you do this sequentially for every node, you'll be able to upgrade with no
50
+ application downtime.
35
51
When upgrading manager nodes, make sure the upgrade of a node finishes before
36
52
you start upgrading the next node. Upgrading multiple manager nodes at the same
37
53
time can lead to a loss of quorum, and possible data loss.
38
54
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.
55
+ ### Drain the node
56
+
57
+ Start by draining the node so that services get scheduled in another node and
58
+ continue running without downtime.
59
+ For that, run this command on a manager node:
43
60
44
- Follow the upgrade instructions for your specific distribution:
61
+ ```
62
+ docker node update --availability drain <node>
63
+ ```
64
+
65
+ ### Perform the upgrade
66
+
67
+ Upgrade the Docker Engine on the node by following the instructions for your
68
+ specific distribution:
45
69
46
70
* [ Windows Server] ( /engine/installation/windows/docker-ee.md#update-docker-ee )
47
71
* [ Ubuntu] ( /engine/installation/linux/docker-ee/ubuntu.md#upgrade-docker-ee )
@@ -50,8 +74,14 @@ Follow the upgrade instructions for your specific distribution:
50
74
* [ Oracle Linux] ( /engine/installation/linux/docker-ee/oracle.md#upgrade-docker-ee )
51
75
* [ SLES] ( /engine/installation/linux/docker-ee/suse.md#upgrade-docker-ee )
52
76
77
+ ### Make the node active
78
+
53
79
Once you finish upgrading the node, make it available to run workloads. For
54
- this, run ` docker node update --availability active <node> ` .
80
+ this, run:
81
+
82
+ ```
83
+ docker node update --availability active <node>
84
+ ```
55
85
56
86
## Upgrade UCP
57
87
0 commit comments