@@ -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,42 @@ 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 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.
35
50
When upgrading manager nodes, make sure the upgrade of a node finishes before
36
51
you start upgrading the next node. Upgrading multiple manager nodes at the same
37
52
time can lead to a loss of quorum, and possible data loss.
38
53
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:
43
59
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:
45
68
46
69
* [ Windows Server] ( /engine/installation/windows/docker-ee.md#update-docker-ee )
47
70
* [ Ubuntu] ( /engine/installation/linux/docker-ee/ubuntu.md#upgrade-docker-ee )
@@ -50,8 +73,14 @@ Follow the upgrade instructions for your specific distribution:
50
73
* [ Oracle Linux] ( /engine/installation/linux/docker-ee/oracle.md#upgrade-docker-ee )
51
74
* [ SLES] ( /engine/installation/linux/docker-ee/suse.md#upgrade-docker-ee )
52
75
76
+ ### Make the node active
77
+
53
78
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
+ ```
55
84
56
85
## Upgrade UCP
57
86
0 commit comments