From 23629a40732b88eddc8fa76b5af373714835b8f9 Mon Sep 17 00:00:00 2001 From: Joao Fernandes Date: Sun, 7 Feb 2016 19:30:32 -0800 Subject: [PATCH] Document how to install UCP in production During the UCP beta we had created a quickstart guide that included installation prerequisites (like ports that need to be open), and the installation procedure. Now we're breaking that information in two different documents. This makes the information more accessible to someone who just wants to prepare the installation. --- images/add-pk.png | Bin 0 -> 51380 bytes production-install.md | 897 ++++++++++++++++++------------------------ 2 files changed, 379 insertions(+), 518 deletions(-) create mode 100644 images/add-pk.png diff --git a/images/add-pk.png b/images/add-pk.png new file mode 100644 index 0000000000000000000000000000000000000000..4d774a87127830275acb3f01d8d2a64d08f1df9c GIT binary patch literal 51380 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 a;Ygm)!ufceN!iExsNdJVS9<5!oBsg +++ title = "Install UCP for production" -description = "Install UCP for production" -keywords = ["tbd, tbd"] +description = "Learn how to install Docker Universal Control Plane on production" +keywords = ["Universal Control Plane, UCP, install"] [menu.main] parent="mn_ucp" weight=-85 @@ -11,494 +11,396 @@ weight=-85 # Install UCP for production -Intro 1-2 paras, page purpose, intended user, list steps if page is tutorial. +This page explains how to install Docker Universal Control Plane (UCP) on a +production environment. A Docker UCP installation, consists of: +* A controller node where UCP is running, +* Replica nodes that are ready to take the controller place if it fails, +* One or more nodes used to run your containers. -## Step 1: Prepare the properly +The controller node can serve as a controller and also run your containers. +These instructions show you how to install both a controller and a node. It +contains the following sections: -tbd - -## Step 2: Configure your network for UCP - -tbd - -## Step 3: Install Docker CS Engine 1.9 on each node - -tbd - -## Step 4: Create user-named volumes - -tbd - -## Step 5: Configure user-supplied certificates - -tbd - -## Step 5: Install the UCP controller - -tbd - -## Step 6: Add a controller replica to the UCP cluster - -tbd - -## Step 7: Add an Engine node to the UCP cluster - -tbd - -## Step 8: Set up certs for the Docker CLI - -tbd - -## Block Mixpanel analytics - -tbd - -## Uninstall - -tbd - -## Where to go next - - +* Read more [about Docker UCP](https://www.docker.com/universal-control-plane) +* Visit the [UCP forum](https://forums.docker.com/c/commercial-products/ucpbeta) +* Read more [about the Docker CLI client](http://docs.docker.com/reference/commandline/cli/) +* Learn [about Docker Swarm](http://docs.docker.com/swarm/)