Merge pull request #855 from joaofnfernandes/792-where-run-commands

Make clear where to run DDC commands
This commit is contained in:
Joao Fernandes 2016-12-12 18:44:26 -08:00 committed by GitHub
commit a2c4e69ab7
14 changed files with 156 additions and 152 deletions

View File

@ -56,8 +56,7 @@ backup command to learn about all the available flags.
As an example, to create a backup of a DTR node, you can use: As an example, to create a backup of a DTR node, you can use:
```bash ```none
# Create the backup
$ docker run -i --rm docker/dtr backup \ $ docker run -i --rm docker/dtr backup \
--ucp-url <ucp-url> \ --ucp-url <ucp-url> \
--ucp-insecure-tls \ --ucp-insecure-tls \
@ -76,7 +75,7 @@ Where:
To validate that the backup was correctly performed, you can print the contents To validate that the backup was correctly performed, you can print the contents
of the tar file created: of the tar file created:
```bash ```none
$ tar -tf /tmp/backup.tar $ tar -tf /tmp/backup.tar
``` ```
@ -105,7 +104,7 @@ backup command to learn about all the available flags.
As an example, to install DTR on the host and restore its As an example, to install DTR on the host and restore its
state from an existing backup: state from an existing backup:
```bash ```none
# Install and restore configurations from an existing backup # Install and restore configurations from an existing backup
$ docker run -i --rm \ $ docker run -i --rm \
docker/dtr restore \ docker/dtr restore \

View File

@ -20,9 +20,9 @@ you're going to install these replicas also need to be managed by UCP.
To add replicas to an existing DTR deployment: To add replicas to an existing DTR deployment:
1. Load your UCP user bundle. 1. Use ssh to log into a node that is already part of UCP.
2. Run the join command. 2. Run the DTR join command:
```none ```none
docker run -it --rm \ docker run -it --rm \
@ -39,7 +39,10 @@ To add replicas to an existing DTR deployment:
## Remove existing replicas ## Remove existing replicas
To remove a DTR replica from a deployment, run: To remove a DTR replica from your deployment:
1. Use ssh to log into a node that is already part of UCP.
2. Run the DTR remove command:
```none ```none
docker run -it --rm \ docker run -it --rm \

View File

@ -33,7 +33,7 @@ Also make sure the hosts are running one of these operating systems:
Install the commercially supported Docker Engine on all hosts you want to manage Install the commercially supported Docker Engine on all hosts you want to manage
with Docker Datacenter. with Docker Datacenter.
Log in into each node using ssh, and install CS Docker Engine: Log in into each host using ssh, and install CS Docker Engine:
```bash ```bash
curl -SLf https://packages.docker.com/1.12/install.sh | sh curl -SLf https://packages.docker.com/1.12/install.sh | sh
@ -59,6 +59,8 @@ docker run --rm -it --name ucp \
This runs the install command in interactive mode, so that you're prompted This runs the install command in interactive mode, so that you're prompted
for any necessary configuration values. for any necessary configuration values.
[Learn more about the UCP installation](../ucp/2.9/guides/installation/index.md)
### Step 4: License your installation ### Step 4: License your installation
Now that UCP is installed, you need to license it. In your browser, navigate Now that UCP is installed, you need to license it. In your browser, navigate
@ -110,7 +112,5 @@ by UCP.
## Where to go next ## Where to go next
* [Create and manage users](../ucp/2.0/guides/user-management/create-and-manage-users.md)
* [Deploy an application](../ucp/2.0/guides/applications/index.md) * [Deploy an application](../ucp/2.0/guides/applications/index.md)
* [Push an image to DTR](../dtr/2.1/guides/repos-and-images/push-an-image.md) * [Considerations for high availability](../ucp/2.0/guides/high-availability/index.md)
* [Considerations for a High Availability Deployment](../ucp/2.0/guides/high-availability/index.md)

View File

@ -11,10 +11,10 @@ For this reason, when running docker commands on a UCP node, you need to
authenticate your request using client certificates. When trying to run docker authenticate your request using client certificates. When trying to run docker
commands without a valid certificate, you get an authentication error: commands without a valid certificate, you get an authentication error:
```markdown ```none
$ docker ps $ docker ps
An error occurred trying to connect: Get https://ucp:443/v1.22/containers/json: x509: certificate signed by unknown authority (possibly because of "crypto/rsa: verification error" when trying to verify candidate authority certificate "UCP Client Root CA") x509: certificate signed by unknown authority
``` ```
There are two different types of client certificates: There are two different types of client certificates:
@ -26,8 +26,8 @@ controller node.
## Download client certificates ## Download client certificates
To download a client certificate bundle, **log into UCP**, and navigate to your To download a client certificate bundle, log into the **UCP web UI**, and
**profile page**. navigate to your user **profile page**.
![](../images/cli-based-access-1.png) ![](../images/cli-based-access-1.png)
@ -36,66 +36,52 @@ Click the **Create a Client Bundle** button, to download the certificate bundle.
## Use client certificates ## Use client certificates
Once you've downloaded a client certificate bundle, you can use it to Once you've downloaded a client certificate bundle to your local computer, you
authenticate your requests. can use it to authenticate your requests.
Navigate to the directory where you downloaded the bundle, and unzip it. Then Navigate to the directory where you downloaded the user bundle, and unzip it.
run the `env.sh` script to start using the client certificates. Then source the `env.sh` script.
```bash ```none
$ unzip ucp-bundle-dave.lauper.zip $ unzip ucp-bundle-dave.lauper.zip
$ cd ucp-bundle-dave.lauper $ cd ucp-bundle-dave.lauper
$ eval $(<env.sh) $ eval $(<env.sh)
``` ```
The env.sh script updates the `DOCKER_HOST` and `DOCKER_CERT_PATH` The `env.sh` script updates the `DOCKER_HOST` environment variable to make your
environment variables to use the certificates you downloaded. local Docker CLI communicate with UCP. It also updates the `DOCKER_CERT_PATH`
environment variables to use the client certificates that are included in the
client bundle you downloaded.
From now on, when you use the Docker CLI client, it includes your client From now on, when you use the Docker CLI client, it includes your client
certificates as part of the request to the Docker Engine. You can now use the certificates as part of the request to the Docker Engine.
`docker info` command to see if the certificates are being sent to the Docker You can now use the Docker CLI to create services, networks, volumes and other
Engine. resources on a swarm managed by UCP.
```markdown
$ docker info
Containers: 11
Nodes: 2
ucp: 192.168.99.100:12376
└ Status: Healthy
ucp-node: 192.168.99.101:12376
└ Status: Healthy
Cluster Managers: 1
192.168.99.104: Healthy
└ Orca Controller: https://192.168.99.100:443
└ Swarm Manager: tcp://192.168.99.100:3376
└ KV: etcd://192.168.99.100:12379
```
## Download client certificates using the REST API ## Download client certificates using the REST API
You can also download client certificate bundles using the UCP REST API. In You can also download client bundles using the UCP REST API. In
this example we'll be using `curl` for making the web requests to the API, and this example we'll be using `curl` for making the web requests to the API, and
`jq` to parse the responses. `jq` to parse the responses.
To install these tools on an Ubuntu distribution, you can run: To install these tools on a Ubuntu distribution, you can run:
```bash ```none
$ sudo apt-get update && apt-get install curl jq $ sudo apt-get update && apt-get install curl jq
``` ```
Then you get an authentication token from UCP, and use it to download the Then you get an authentication token from UCP, and use it to download the
client certificates. client certificates.
```bash ```none
# Create an environment variable with the user security token # Create an environment variable with the user security token
$ AUTHTOKEN=$(curl -sk -d '{"username":"<username>","password":"<password>"}' https://<ucp-ip>/auth/login | jq -r .auth_token) $ AUTHTOKEN=$(curl -sk -d '{"username":"<username>","password":"<password>"}' https://<ucp-ip>/auth/login | jq -r .auth_token)
# Download the client certificate bundle # Download the client certificate bundle
$ curl -k -H "Authorization: Bearer $AUTHTOKEN" https://<ucp-ip>/api/clientbundle -o bundle.zip $ curl -k -H "Authorization: Bearer $AUTHTOKEN" https://<ucp-ip>/api/clientbundle -o bundle.zip
``` ```
## Where to go next ## Where to go next
* [Deploy an app from the UI](../applications/index.md) * [Access the UCP web UI](index.md)
* [Deploy an app from the CLI](../applications/deploy-app-cli.md) * [Deploy an app from the CLI](../applications/deploy-app-cli.md)

View File

@ -21,3 +21,7 @@ browser, Administrators can:
Non-admin users can only see and change the images, networks, volumes, and Non-admin users can only see and change the images, networks, volumes, and
containers, they are granted access. containers, they are granted access.
# Where to go next
* [Access UCP from the CLI](cli-based-access.md)

View File

@ -13,8 +13,8 @@ application.
Docker UCP secures your Docker swarm with role-based access control, so that only Docker UCP secures your Docker swarm with role-based access control, so that only
authorized users can deploy applications. To be able to run authorized users can deploy applications. To be able to run
Docker commands on a swarm managed by UCP, you need to authenticate your Docker commands on a swarm managed by UCP, you need to configure your Docker CLI
requests using client certificates. client to authenticate to UCP using client certificates.
[Learn how to set your CLI to use client certificates](../access-ucp/cli-based-access.md). [Learn how to set your CLI to use client certificates](../access-ucp/cli-based-access.md).
@ -25,7 +25,7 @@ The WordPress application we're going to deploy is composed of two services:
* wordpress: The service that runs Apache, PHP, and WordPress. * wordpress: The service that runs Apache, PHP, and WordPress.
* db: A MariaDB database used for data persistence. * db: A MariaDB database used for data persistence.
After setting up your terminal to authenticate using client certificates, After setting up your Docker CLI client to authenticate using client certificates,
create a file named `docker-compose.yml` with the following service definition: create a file named `docker-compose.yml` with the following service definition:
```none ```none
@ -58,14 +58,14 @@ volumes:
``` ```
In your command line, navigate to the place where you've created the In your command line, navigate to the place where you've created the
`docker-compose.yml` file and run: `docker-compose.yml` file and deploy the application to UCP by running:
```bash ```bash
$ docker-compose --project-name wordpress up -d $ docker-compose --project-name wordpress up -d
``` ```
Test that the WordPress service is up and running, and find where you can Test that the WordPress service is up and running, and find on which node it
reach it. was deployed.
```bash ```bash
$ docker-compose --project-name wordpress ps $ docker-compose --project-name wordpress ps
@ -76,7 +76,7 @@ wordpress_db_1 docker-entrypoint.sh mysqld Up 3306/tcp
wordpress_wordpress_1 docker-entrypoint.sh apach ... Up 172.31.18.153:8000->80/tcp wordpress_wordpress_1 docker-entrypoint.sh apach ... Up 172.31.18.153:8000->80/tcp
``` ```
In this example, WordPress can be accessed at 172.31.18.153:8000. Navigate to In this example, WordPress was deployed to 172.31.18.153:8000. Navigate to
this address in your browser, to start using the WordPress app you just this address in your browser, to start using the WordPress app you just
deployed. deployed.

View File

@ -11,7 +11,7 @@ WordPress application.
## Deploy WordPress ## Deploy WordPress
On your browser, **log in** to UCP, and navigate to the **Applications** page. In your browser, **log in** to UCP, and navigate to the **Applications** page.
There, click the **Deploy compose.yml** button, to deploy a new application. There, click the **Deploy compose.yml** button, to deploy a new application.
![](../images/deploy-app-ui-1.png) ![](../images/deploy-app-ui-1.png)

View File

@ -5,39 +5,49 @@ keywords: Universal Control Plane, UCP, certificate, authentiation, tls
title: Use externally-signed certificates title: Use externally-signed certificates
--- ---
By default the UCP web UI is exposed using HTTPS, to ensure all All UCP services are exposed using HTTPS, to ensure all communications between
communications between clients and UCP are encrypted. Since UCP clients and UCP are encrypted. By default this is done using self-signed TLS
controllers use self-signed certificates for this, when a client accesses certificates that are not trusted by client tools like web browsers. So when
UCP their browsers won't trust this certificate, so the browser displays a you try to access UCP, your browser will warn that it doesn't trust UCP or that
warning message. UCP has an invalid certificate.
You can configure UCP to use your own certificates, so that it is automatically ![invalid certificate](../images/use-externally-signed-certs-1.png)
trusted by your users' browser and client tools.
The same happens with other client tools.
```none
$ curl https://ucp.example.org
SSL certificate problem: Invalid certificate chain
```
You can configure UCP to use your own TLS certificates, so that it is
automatically trusted by your browser and client tools.
To ensure minimal impact to your business, you should plan for this change to To ensure minimal impact to your business, you should plan for this change to
happen outside business peak hours. Your applications will continue happen outside business peak hours. Your applications will continue running
running normally, but UCP will be unresponsive while the controller containers normally, but existing UCP client certificates will become invalid, so users
are restarted. will have to download new ones to [access UCP from the CLI](../access-ucp/cli-based-access.md).
## Replace the server certificates ## Customize the UCP TLS certificates
To configure UCP to use your own certificates and keys, go to the To configure UCP to use your own TLS certificates and keys, go to the
**UCP web UI**, navigate to the **Admin Settings** page, **UCP web UI**, navigate to the **Admin Settings** page,
and click **Certificates**. and click **Certificates**.
![](../images/use-externally-signed-certs-1.png) ![](../images/use-externally-signed-certs-2.png)
Upload your certificates and keys: Upload your certificates and keys:
* A ca.pem file with the root CA public certificate. * A ca.pem file with the root CA public certificate.
* A cert.pem file with the server certificate and any intermediate CA public * A cert.pem file with the TLS certificate and any intermediate CA public
certificates. This certificate should also have SANs for all addresses used to certificates. This certificate should also have SANs for all addresses used to
reach the UCP controller, including load balancers. access UCP, including load balancers.
* A key.pem file with server private key. * A key.pem file with TLS private key.
Finally, click **Update** for the changes to take effect. Finally, click **Update** for the changes to take effect.
After replacing the certificates your users won't be able to authenticate After replacing the TLS certificates your users won't be able to authenticate
with their old client certificate bundles. Ask your users to go to the UCP with their old client certificate bundles. Ask your users to go to the UCP
web UI and [get new client certificate bundles](../access-ucp/cli-based-access.md). web UI and [get new client certificate bundles](../access-ucp/cli-based-access.md).

View File

@ -36,9 +36,9 @@ x509: certificate signed by unknown authority
## 1. Configure your local computer ## 1. Configure your local computer
If you want to use your local computer to interact with DTR, you also need to If you want to use your local computer to interact with DTR, you need to
configure configure it to trust the DTR TLS certificates. This depends on the configure it to trust the DTR TLS certificates. This depends on the operating
operating system: system:
* For macOS: * For macOS:
@ -56,7 +56,7 @@ operating system:
```bash ```bash
# Download the DTR CA certificate # Download the DTR CA certificate
$ sudo curl -k https://<dtr-domain-name>/ca -o /usr/local/share/ca-certificates/<dtr-domain-name>.crt $ sudo curl -k https://<dtr-url>/ca -o /usr/local/share/ca-certificates/<dtr-domain-name>.crt
# Refresh the list of certificates to trust # Refresh the list of certificates to trust
$ sudo update-ca-certificates $ sudo update-ca-certificates
@ -69,7 +69,7 @@ operating system:
```bash ```bash
# Download the DTR CA certificate # Download the DTR CA certificate
$ sudo curl -k https://<dtr-domain-name>/ca -o /etc/pki/ca-trust/source/anchors/<dtr-domain-name>.crt $ sudo curl -k https://<dtr-url>/ca -o /etc/pki/ca-trust/source/anchors/<dtr-domain-name>.crt
# Refresh the list of certificates to trust # Refresh the list of certificates to trust
$ sudo update-ca-trust $ sudo update-ca-trust
@ -78,12 +78,12 @@ operating system:
$ sudo /bin/systemctl restart docker.service $ sudo /bin/systemctl restart docker.service
``` ```
## 2. Test your setup ## 2. Test your local setup
The best way to confirm that your computer is correctly configured, is by The best way to confirm that your computer is correctly configured, is by
trying to pull and push images from your local Docker installation to DTR. trying to pull and push images from your local Docker installation to DTR.
1. Create a test repository on DTR. 1. Create a test repository on DTR.
Navigate to the **DTR web UI**, and create a new **hello-world** repository Navigate to the **DTR web UI**, and create a new **hello-world** repository
so that you can push and pull images. Set it as **private**, and save so that you can push and pull images. Set it as **private**, and save
@ -91,28 +91,24 @@ trying to pull and push images from your local Docker installation to DTR.
![](../images/dtr-integration-1.png) ![](../images/dtr-integration-1.png)
2. Use a [UCP client bundle](../access-ucp/cli-based-access.md) to run docker 2. Pull the `hello-world` image from Docker Store, re-tag it, and push it to the
commands in the UCP cluster. DTR repository you created.
3. Pull an image from Docker Hub: ```none
# Pull hello-world from Docker Store
docker pull hello-world:latest
```bash # Re-tag it
$ docker pull hello-world docker tag hello-world:latest <dtr-domain>/<user>/hello-world:latest
# Log into DTR
docker login <dtr-domain>
# Push your image to DTR
docker push <dtr-domain>/<user>/hello-world:latest
``` ```
4. Retag the image: 3. Validate that your image is now stored in DTR.
```bash
$ docker tag hello-world:latest <dtr-domain-name>/<username>/hello-world:1
```
5. Push the image from the UCP node to your private registry:
```bash
$ docker push <dtr-domain-name>/<username>/hello-world:1
```
6. Validate that your image is now stored on DTR.
When successfully pushing the image you should see a result like: When successfully pushing the image you should see a result like:
@ -128,31 +124,19 @@ commands in the UCP cluster.
![](../images/dtr-integration-2.png) ![](../images/dtr-integration-2.png)
## 3. Configure UCP Docker Engines
You also need to configure the Docker Engine on every UCP node to trust the
DTR TLS certificates. This allows you do deploy services to UCP using images
## 1. Configure UCP Docker Engines that are stored in DTR.
For each UCP node: For each UCP node:
1. Log into the node as an administrator, using ssh 1. Log into the node as an administrator, using ssh
2. Configure the system to trust the DTR TLS certificates. This depends on 2. Configure the system to trust the DTR TLS certificates, following the same
the operating system. steps as you used to configure your local computer.
## Troubleshooting
When one of the components is misconfigured, and doesn't trust the root CA
certificate of the other components, you'll get an error like:
```none
$ docker push dtr/username/hello-world:1
The push refers to a repository [dtr/username/hello-world]
Get https://dtr/v1/_ping: x509: certificate signed by unknown authority
```
## Where to go next ## Where to go next
* [Monitor your cluster](../monitor/index.md) * [Use externally-signed certificates](index.md)
* [Troubleshoot your cluster](../monitor/troubleshoot.md)
* [Run only signed images](../content-trust/index.md)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 110 KiB

After

Width:  |  Height:  |  Size: 172 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 259 KiB

View File

@ -6,60 +6,69 @@ title: Universal Control Plane overview
--- ---
Docker Universal Control Plane (UCP) is the enterprise-grade cluster management Docker Universal Control Plane (UCP) is the enterprise-grade cluster management
solution from Docker. You install it behind your firewall, and it helps you solution from Docker. You install it on-premises or in your virtual private
manage your whole cluster from a single place. cloud, and it helps you manage your Docker cluster and applications from a
single place.
![](images/overview-1.png) ![](images/overview-1.png)
## Centralized cluster management ## Centralized cluster management
Docker UCP can be installed on-premises, or on a virtual private cloud. With Docker you can join up to thousands of physical or virtual machines
And with it, you can manage thousands of nodes as if they were a single one. together to create a container cluster, allowing you to deploy your applications
You can monitor and manage your cluster using a graphical UI. at scale. Docker Universal Control Plane extends the functionality provided
by Docker to make it easier to manage your cluster from a centralized place.
You can manage and monitor your container cluster using a graphical UI.
![](images/overview-2.png) ![](images/overview-2.png)
Since UCP exposes the standard Docker API, you can continue using the tools Since UCP exposes the standard Docker API, you can continue using the tools
you already know, to manage a whole cluster. you already know, including the Docker CLI client, to deploy and manage your
applications.
As an example, you can use the `docker info` command to check the As an example, you can use the `docker info` command to check the
status of the cluster: status of a Docker cluster managed by UCP:
```bash ```bash
$ docker info $ docker info
Containers: 30 Containers: 30
Images: 24 Images: 24
Server Version: swarm/1.1.3 Server Version: ucp/2.0.1
Role: primary Role: primary
Strategy: spread Strategy: spread
Filters: health, port, dependency, affinity, constraint Filters: health, port, containerslots, dependency, affinity, constraint
Nodes: 2 Nodes: 2
ucp: 192.168.99.103:12376 ucp-node-1: 192.168.99.100:12376
└ Status: Healthy └ Status: Healthy
└ Containers: 20 └ Containers: 20
ucp-replica: 192.168.99.102:12376 ucp-node-2: 192.168.99.101:12376
└ Status: Healthy └ Status: Healthy
└ Containers: 10 └ Containers: 10
``` ```
## Deploy, manage, and monitor ## Deploy, manage, and monitor
With Docker UCP you can manage the nodes of your infrastructure. You can also With Docker UCP you can manage from a centralized place all the computing
manage apps, containers, networks, images, and volumes, in a transparent way. resources you have available like nodes, volumes, and networks.
You can also deploy and monitor your applications and services.
## Built-in security and access control ## Built-in security and access control
Docker UCP has its own built-in authentication mechanism, and supports LDAP Docker UCP has its own built-in authentication mechanism and integrates with
and Active Directory. It also supports Role Based Access Control (RBAC). LDAP services. It also has Role Based Access Control (RBAC), so that you can
This ensures that only authorized users can access and make changes to cluster. control who can access and make changes to your cluster and applications.
![](images/overview-3.png) ![](images/overview-3.png)
Docker UCP also integrates with Docker Trusted Registry and Docker Content Docker UCP integrates with Docker Trusted Registry so that you can keep the
Trust. This allows you to keep your images stored behind your firewall, Docker images you use for your applications behind your firewall, where they
where they are safe. It also allows you to sign those images to ensure that are safe and can't be tampered.
the images you deploy have not been altered in any way.
You can also enforce security policies and only allow running applications
that use Docker images you know and trust.
## Where to go next ## Where to go next

View File

@ -7,8 +7,6 @@ title: Install UCP for production
Docker Universal Control Plane (UCP) is a containerized application that can be Docker Universal Control Plane (UCP) is a containerized application that can be
installed on-premise or on a cloud infrastructure. installed on-premise or on a cloud infrastructure.
If you're installing Docker Datacenter on Azure, [follow this guide](https://success.docker.com/?cid=ddc-on-azure).
## Step 1: Validate the system requirements ## Step 1: Validate the system requirements
The first step to installing UCP, is ensuring your The first step to installing UCP, is ensuring your
@ -17,9 +15,19 @@ infrastructure has all the [requirements UCP needs to run](system-requirements.m
## Step 2: Install CS Docker on all nodes ## Step 2: Install CS Docker on all nodes
UCP is a containerized application that requires CS Docker Engine 1.12.0 or UCP is a containerized application that requires the commercially supported
above to run. Start by installing CS Docker Engine on all hosts that you want to Docker Engine to run.
manage with UCP.
For each host that you plan to manage with UCP:
1. Log in into that host using ssh.
2. Install CS Docker Engine:
```bash
curl -SLf https://packages.docker.com/1.12/install.sh | sh
```
[You can also install CS Docker Engine using a package manager](/cs-engine/install.md)
Make sure you install the same CS Docker Engine version on all the nodes. Also, Make sure you install the same CS Docker Engine version on all the nodes. Also,
if you're creating virtual machine templates with CS Docker Engine already if you're creating virtual machine templates with CS Docker Engine already
@ -79,12 +87,12 @@ If you don't have a license yet, [learn how to get a free trial license](license
## Step 6: Join manager nodes ## Step 6: Join manager nodes
Skip this step if you don't want your UCP swarm to be highly available. Skip this step if you don't want UCP to be highly available.
To make your UCP swarm fault-tolerant and highly available, you To make your Docker swarm and UCP fault-tolerant and highly available, you can
can join more manager nodes to your it. Manager nodes are the nodes in the join more manager nodes to your it. Manager nodes are the nodes in the swarm
swarm that perform the orchestration and swarm management tasks, and that perform the orchestration and swarm management tasks, and dispatch tasks
dispatch tasks for worker nodes to execute. for worker nodes to execute.
[Learn more about high-availability](../high-availability/index.md). [Learn more about high-availability](../high-availability/index.md).
To join manager nodes to the swarm, go to the **UCP web UI**, navigate to To join manager nodes to the swarm, go to the **UCP web UI**, navigate to

View File

@ -5,16 +5,17 @@ keywords: docker, ucp, install, checklist
title: Plan a production installation title: Plan a production installation
--- ---
Docker Universal Control Plane can be installed on-premises, or Docker Universal Control Plane helps you manage your container cluster from a
on a virtual private cloud. centralized place. This article explains what you need to consider before
This article explains what you need to consider before deploying deploying Docker Universal Control Plane for production.
Docker Universal Control Plane.
## System requirements ## System requirements
Before installing UCP, you should make sure all nodes of your cluster Before installing UCP you should make sure that all nodes (physical or virtual
comply with the [system requirements](system-requirements.md). machines) that you'll manage with UCP:
* [Comply the the system requirements](system-requirements.md)
* Are running the same version of CS Docker Engine
## Hostname strategy ## Hostname strategy