From a27fb2ff0de52fb7d111134b39c861641f592ecd Mon Sep 17 00:00:00 2001 From: Mary Anthony Date: Tue, 20 Oct 2015 19:51:18 -0700 Subject: [PATCH] Updating per Betty's verbal comments. Entering Betty's second round comment Fix awkward code blips Merging JChu's comments from outdated material Fixing problems in Dockerfile pdating with the comments from John Updating for DTR Updating for fix Updating with the comments from Betty and Jon Signed-off-by: Mary Anthony --- Dockerfile | 33 +-- index.md | 2 +- install/csengineinstall.md | 106 ------- ...tr-ami-launch.md => dtr-ami-bds-launch.md} | 4 +- install/dtr-ami-byol-launch.md | 8 +- install/engine-ami-launch.md | 2 +- .../images}/aws-dtr-sg-rules.png | Bin .../images}/aws-engine-sg-rules.png | Bin .../images}/aws-instance-id.png | Bin .../images}/dtr-license-download.png | Bin install/images/script-copy.png | Bin 0 -> 99108 bytes install/index.md | 65 ++--- install/install-csengine.md | 140 +++++++++ install/install-dtr.md | 188 ++++++++++++ install/install-manual.md | 269 ------------------ install/upgrade.md | 2 +- license.md | 13 +- 17 files changed, 388 insertions(+), 444 deletions(-) delete mode 100644 install/csengineinstall.md rename install/{dtr-ami-launch.md => dtr-ami-bds-launch.md} (99%) rename {assets => install/images}/aws-dtr-sg-rules.png (100%) rename {assets => install/images}/aws-engine-sg-rules.png (100%) rename {assets => install/images}/aws-instance-id.png (100%) rename {assets => install/images}/dtr-license-download.png (100%) create mode 100644 install/images/script-copy.png create mode 100644 install/install-csengine.md create mode 100644 install/install-dtr.md delete mode 100644 install/install-manual.md diff --git a/Dockerfile b/Dockerfile index c80159ef30..48efc85205 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,27 +1,18 @@ FROM docs/base:hugo-github-linking MAINTAINER Mary Anthony (@moxiegirl) -RUN svn checkout https://github.com/docker/tutorials/trunk/docs/mac /docs/content/mac \ -&& svn checkout https://github.com/docker/tutorials/trunk/docs/windows /docs/content/windows \ -&& svn checkout https://github.com/docker/tutorials/trunk/docs/linux /docs/content/linux - -RUN svn checkout https://github.com/docker/docker/trunk/docs /docs/content/ - -RUN svn checkout https://github.com/docker/compose/trunk/docs /docs/content/compose \ -&& svn checkout https://github.com/docker/swarm/trunk/docs /docs/content/swarm \ -&& svn checkout https://github.com/docker/machine/trunk/docs /docs/content/machine \ -&& svn checkout https://github.com/docker/distribution/trunk/docs /docs/content/registry \ -&& svn checkout https://github.com/kitematic/kitematic/trunk/docs /docs/content/kitematic \ -&& svn checkout https://github.com/docker/opensource/trunk/docs /docs/content/opensource - +# To get the git info for this repo COPY . /src -COPY . /docs/content/docker-trusted-registry/ - +COPY . /docs/content/docker-trusted-registry -RUN wget https://raw.githubusercontent.com/docker/docs.docker.com/master/touch-up.sh -RUN chmod 777 touch-up.sh && mv touch-up.sh /src && cat /dev/null > /docs/build.json - -# To get the git info for this repo - -RUN /src/touch-up.sh /docs +RUN svn checkout https://github.com/docker/docker/trunk/docs /docs/content/engine +RUN svn checkout https://github.com/docker/compose/trunk/docs /docs/content/compose +RUN svn checkout https://github.com/docker/swarm/trunk/docs /docs/content/swarm +RUN svn checkout https://github.com/docker/machine/trunk/docs /docs/content/machine +RUN svn checkout https://github.com/docker/distribution/trunk/docs /docs/content/registry +RUN svn checkout https://github.com/kitematic/kitematic/trunk/docs /docs/content/kitematic +RUN svn checkout https://github.com/docker/tutorials/trunk/docs/mac /docs/content/mac +RUN svn checkout https://github.com/docker/tutorials/trunk/docs/windows /docs/content/windows +RUN svn checkout https://github.com/docker/tutorials/trunk/docs/linux /docs/content/linux +RUN svn checkout https://github.com/docker/opensource/trunk/docs /docs/content/opensource diff --git a/index.md b/index.md index c0d6a04e9f..1ba1b0a76b 100644 --- a/index.md +++ b/index.md @@ -35,7 +35,7 @@ Docker Trusted Registry is perfect for: Docker Trusted Registry is built on [version 2 of the Docker registry](https://github.com/docker/distribution). -To get your copy of Docker Trusted Registry, including a free trial, visit [the Docker Subscription page](https://hub-beta.docker.com/enterprise/). For more information on acquiring Docker Trusted Registry, see the [install page](/docker-trusted-registry/install/). +To get your copy of Docker Trusted Registry, including a free trial, visit [the Docker Subscription page](https://hub.docker.com/enterprise/). For more information on acquiring Docker Trusted Registry, see the [install page](/docker-trusted-registry/install/). > **Important**: Docker Trusted Registry must be used with the current version of the commercially > supported Docker Engine. You must install this version of Docker before diff --git a/install/csengineinstall.md b/install/csengineinstall.md deleted file mode 100644 index fd23d13cfb..0000000000 --- a/install/csengineinstall.md +++ /dev/null @@ -1,106 +0,0 @@ -+++ -title = "Manually Install the CS Docker Engine" -description = "Install instructions for the commercially supported Docker Engine" -keywords = ["docker, documentation, about, technology, enterprise, hub, commercially supported Docker Engine, CS engine, registry"] -[menu.main] -parent="smn_dhe_install" -+++ - - -# Manually Install the CS Docker Engine - -You must first install the latest version of the commercially supported Docker Engine (CS engine) before you install the latest version of Docker Trusted Registry. Do this with an RPM or DEB package which you access using a script downloaded from your -[Docker Hub Licenses page](https://hub-beta.docker.com/account/licenses/). - -If you have not already done so, make sure you have first read the [installation overview](index.md) for Trusted Registry. - -## Download the installation script - -1. To download the commercially supported Docker Engine Bash installation script, -log in to the [Docker Hub](https://hub-beta.docker.com) with the user-name used to -obtain your license. -2. Once you're logged in, go to the -[Licenses](https://hub-beta.docker.com/account/licenses/) page in your Hub account's Settings section. This is accessed through the gear icon located in the upper right of your page. -3. Click the button at the top right of the Licenses page that corresponds to your intended host operating system. The Bash setup script -downloads. -4. Next, select your operating system and follow the applicable steps. - -### Install CentOS 7.1 & RHEL 7.0/7.1 - -1. Copy the downloaded Bash setup script to your RHEL host. -2. Run the following to install the engine and its dependencies. -3. Start the Docker daemon. - - The following example illustrates these steps. - - ``` - $ sudo yum update && sudo yum upgrade - $ chmod 755 docker-cs-engine-rpm.sh - $ sudo ./docker-cs-engine-rpm.sh - $ sudo yum install docker-engine-cs - $ sudo systemctl enable docker.service - $ sudo systemctl start docker.service - ``` - - To make using Docker easier, you can get non-sudo access to the Docker - socket by adding your user to the `docker` group. - -(*Optional*) Log out and back in again as seen in the next example. - - -``` -$ sudo usermod -a -G docker $USER -$ exit -``` -> **Notes**: -> You may need to reboot your server to update its RHEL kernel. -> CentOS 7.0 is not supported. - -### Install Ubuntu 14.04 LTS - -1. Copy the downloaded Bash setup script to your Ubuntu host. -2. Run the following to install the engine and its dependencies. - - The following example illustrates these steps. - - ``` - $ sudo apt-get update && sudo apt-get upgrade - $ sudo apt-get install -y linux-image-extra-virtual - $ sudo reboot - $ chmod 755 docker-cs-engine-deb.sh - $ sudo ./docker-cs-engine-deb.sh - $ sudo apt-get install docker-engine-cs - ``` - -3. Confirm Docker is running with `sudo service docker start`. - - To make using Docker easier, you can get non-sudo access to the Docker socket by adding your user to the `docker` group. - -4. (*Optional*) Log out and back in again as seen in the next example. - - ``` - $ sudo usermod -a -G docker $USER - $ exit - ``` - -> **Note**: You may need to reboot your server to update its LTS kernel. - -## Next step -Your ready to install [Docker Trusted Registry]({{< relref "install.md" >}}). - -## See also - -* If you were manually installing Docker Trusted Registry, then continue with [those steps]({{< relref "install.md" >}}). -* To configure for your environment, see the -[Configuration instructions]({{< relref "configuration.md" >}}). -* To use Docker Trusted Registry, see the [User guide]({{< relref "userguide.md" >}}). -* To make administrative changes, see the [Admin guide]({{< relref "adminguide.md" >}}). -* To see previous changes, see the [release notes]({{< relref "release-notes.md" >}}). - -## See also - -* To configure for your environment, see -[Configuration instructions]({{< relref "configuration.md" >}}). -* To use Docker Trusted Registry, see [the User guide]({{< relref "userguide.md" >}}). -* To make administrative changes, see [the Admin guide]({{< relref "adminguide.md" >}}). -* To see previous changes, see [the release notes]({{< relref "release-notes.md" >}}). diff --git a/install/dtr-ami-launch.md b/install/dtr-ami-bds-launch.md similarity index 99% rename from install/dtr-ami-launch.md rename to install/dtr-ami-bds-launch.md index cdf68a647e..87bfd26d3b 100644 --- a/install/dtr-ami-launch.md +++ b/install/dtr-ami-bds-launch.md @@ -80,7 +80,7 @@ The following steps walk you through the 1-Click Launch settings: 5. From the Security Group box, select "Create new based on seller settings". - ![](assets/aws-dtr-sg-rules.png) + ![](images/aws-dtr-sg-rules.png) This option has security implications. It allows incoming connections to the listed ports from any host or IP address. You should lock this down in line with your existing AWS security policies. @@ -136,7 +136,7 @@ interface: You'll find the Instance ID on the "Description" tab on the EC2 Dashboard as shown in the image below: - ![](assets/aws-instance-id.png) + ![](images/aws-instance-id.png) ## Configure the Docker Trusted Registry Service diff --git a/install/dtr-ami-byol-launch.md b/install/dtr-ami-byol-launch.md index 4b8ab5614f..5098d86623 100644 --- a/install/dtr-ami-byol-launch.md +++ b/install/dtr-ami-byol-launch.md @@ -15,7 +15,7 @@ The Trusted Registry installation includes a single instance of the commercially supported Docker Engine. You can install additional instances of the commercially supported Docker Engine -either on premise or through AWS. For more inforamtion, see the [installation +either on premise or through AWS. For more information, see the [installation overview](index.md) for Trusted Registry. The remainder of this document refers to the running instance of this AMI as a “Trusted Registry”. @@ -93,7 +93,7 @@ The following steps walk you through the 1-Click Launch settings: 4. From the Security Group box, select "Create new based on seller settings". - ![](assets/aws-dtr-sg-rules.png) + ![](images/aws-dtr-sg-rules.png) This option has security implications. It allows incoming connections to the listed ports from any host or IP address. You should lock this down in line with your existing AWS security policies.. @@ -149,7 +149,7 @@ interface: You'll find the Instance ID on the "Description" tab on the EC2 Dashboard as shown in the image below: - ![](assets/aws-instance-id.png) + ![](images/aws-instance-id.png) ## Configure the Docker Trusted Registry Service @@ -169,7 +169,7 @@ When you first login to the DTR Administration web interface you are prompted to Your Docker Trusted Registry license file is available from Docker Hub. To download it, login to Docker Hub and click your username in the top right corner. Choose "Settings" and select the "Licenses" tab. Click the download button beneath your license. - ![](assets/dtr-license-download.png) + ![](images/dtr-license-download.png) From the Docker Trusted Registry Administration web interface, select "Settings" and then "License". Under the "Apply a new license" heading select "Choose File". Select your downloaded license file and click "Save and restart". diff --git a/install/engine-ami-launch.md b/install/engine-ami-launch.md index b5cad3d507..d35dc7682f 100644 --- a/install/engine-ami-launch.md +++ b/install/engine-ami-launch.md @@ -87,7 +87,7 @@ The following steps walk you through the 1-Click Launch settings: 5. From the Security Group box, select "Create new based on seller settings". - ![](assets/aws-engine-sg-rules.png) + ![](images/aws-engine-sg-rules.png) This option has security implications. It allows incoming connections to the listed ports from any host or IP address. You should lock this down in line with your existing AWS security policies. diff --git a/assets/aws-dtr-sg-rules.png b/install/images/aws-dtr-sg-rules.png similarity index 100% rename from assets/aws-dtr-sg-rules.png rename to install/images/aws-dtr-sg-rules.png diff --git a/assets/aws-engine-sg-rules.png b/install/images/aws-engine-sg-rules.png similarity index 100% rename from assets/aws-engine-sg-rules.png rename to install/images/aws-engine-sg-rules.png diff --git a/assets/aws-instance-id.png b/install/images/aws-instance-id.png similarity index 100% rename from assets/aws-instance-id.png rename to install/images/aws-instance-id.png diff --git a/assets/dtr-license-download.png b/install/images/dtr-license-download.png similarity index 100% rename from assets/dtr-license-download.png rename to install/images/dtr-license-download.png diff --git a/install/images/script-copy.png b/install/images/script-copy.png new file mode 100644 index 0000000000000000000000000000000000000000..f17b350b931c45fdd1c239d924c64c6aa209a05c GIT binary patch literal 99108 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%0Aq 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�}p`Pi(mPuY(5}SVi$yN4DJ;z@RTx6zTW#U_y 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. -* Download the [commercially supported Docker Engine]({{< relref "csengineinstall.md" >}}). -* Install by [bringing your own license (BYOL)]({{< relref "installAWS.md" >}}). -* Install through the [pay as you go option]({{< relref "ami-launch.md" >}}). -* Install [manually]({{< relref "install.md" >}}). +Docker Trusted Registry requires that you use the latest version of the commercially supported Docker Engine. This means that when you upgrade Trusted Registry, you must also upgrade to the latest CS Engine. -## See also +## Where to go next -* To configure for your environment, see the -[configuration instructions]({{< relref "configuration.md" >}}). -* To use Docker Trusted Registry, see the [User guide]({{< relref "userguide.md" >}}). -* To make administrative changes, see the [Admin guide]({{< relref "adminguide.md" >}}). -* To see previous changes, see the [release notes]({{< relref "release-notes.md" >}}). +* If you are installing on physical infrastructure or a cloud provider, first install the [commercially supported Docker Engine](install-csengine.md) and then go on to install [Trusted Registry](install-dtry.md). + +* If you are installing on AWS and would like to use a pre-built AMI and a license you purchased, see [bringing your own license (BYOL)](dtr-ami-byol-launch.md). + +* If you are installing on AWS and would like to use the subscription license, see the [pay as you go BDS installation](dtr-ami-bds-launch.md). diff --git a/install/install-csengine.md b/install/install-csengine.md new file mode 100644 index 0000000000..55d25ac018 --- /dev/null +++ b/install/install-csengine.md @@ -0,0 +1,140 @@ ++++ +title = "Manually Install the CS Docker Engine" +description = "Install instructions for the commercially supported Docker Engine" +keywords = ["docker, documentation, about, technology, enterprise, hub, commercially supported Docker Engine, CS engine, registry"] +[menu.main] +parent="smn_dhe_install" ++++ + + +# Manually Install the CS Docker Engine + +This document describes the process of obtaining and installing the Commercially +Supported Docker Engine (CS Engine). Installing CS Engine is a prerequisite for +installing the Docker Trusted Registry. You can use these instructions if you are installing CS Engine on physical or cloud infrastructure. + +If your cloud provider is AWS, you have the option of installing CS Engine using an Amazon Machine Image (AMI) instead. For more information, read the [installation overview](index.md) to understand your options. + +## Prerequisite + +Installing CS Engine requires that you have a login to Docker Hub. If you have +not already done so, go to Docker Hub and [sign up for an +account](https://hub.docker.com). + +Also, you must have a license for Docker Trusted Registry. This license allows +you to run both Docker Trusted Registry and CS Engine. Before installing, +[purchase a license or sign up for a free, 30 day trial license]((https://hub.docker.com/enterprise/)). + + +## Install on CentOS 7.1 & RHEL 7.0/7.1 + +This section explains how to install on CentOS 7.1 & RHEL 7.0/7.1. Only these versions are supported. CentOS 7.0 is not supported. On RHEL, depending on your current level of updates, you may need to reboot your server to update its RHEL kernel. + +1. Log into the system as a user with root or sudo permissions. + +2. Update your `yum` repositories. + + $ sudo yum update && sudo yum upgrade + +3. In a browser, log in to the [Docker Hub](https://hub.docker.com) with the account you used to obtain your license. + +4. Once you're logged in, go to your account's [Licenses](https://hub.docker.com/account/licenses/) page. + +5. In the "Download and Install CS Engine" locate the script appropriate to your system. + +6. Copy the script, paste it into your terminal, and press Return. + + $ curl -s + https://packagecloud.io/install/repositories/Docker/cs-public/script.rpm.sh | + sudo bash sudo yum install docker-engine-cs + +7. After the command completes, install the CS Engine with the following command: + + $ sudo yum install docker-engine-cs + +8. Enable the Docker daemon as a service and then start it. + + $ sudo systemctl enable docker.service + $ sudo systemctl start docker.service + +9. Verify the installation was successful by running a simple container. + + $ sudo docker run hello-world + Unable to find image 'hello-world:latest' locally + latest: Pulling from hello-world + b901d36b6f2fd75: Pull complete + 0a6ba66e537a53a: Pull complete + hello-world:latest: The image you are pulling has been verified. Important: image verification is a tech preview feature and should not be relied on to provide security. + Digest: sha256:517f03be3f8169d84711c9ffb2b3235a4d27c1eb4ad147f6248c8040adb93113 + Status: Downloaded newer image for hello-world:latest + + Hello from Docker. + This message shows that your installation appears to be working correctly. + + To generate this message, Docker took the following steps: + 1. The Docker client contacted the Docker daemon. + 2. The Docker daemon pulled the "hello-world" image from the Docker Hub. + 3. The Docker daemon created a new container from that image which runs the + executable that produces the output you are currently reading. + 4. The Docker daemon streamed that output to the Docker client, which sent it + to your terminal. + + To try something more ambitious, you can run an Ubuntu container with: + $ docker run -it ubuntu bash + + Share images, automate workflows, and more with a free Docker Hub account: + https://hub.docker.com + + For more examples and ideas, visit: + https://docs.docker.com/userguide/ + +10. Optionally, add non-sudo access to the Docker socket by adding your user to the `docker` group. + + $ sudo usermod -a -G docker $USER + + Log out and log back in to have your new permissions take effect. + + + +## Install on Ubuntu 14.04 LTS + +1. Log into the system as a user with root or sudo permissions. + +2. Update your `yum` repositories. + + $ sudo apt-get update && sudo apt-get upgrade + +3. Install additional virtual drivers not in the base image. + + $ sudo apt-get install -y linux-image-extra-virtual + + You may need to reboot your server to after updating the LTS kernel. + +4. In a browser, log in to the [Docker Hub](https://hub.docker.com) with the account you used to obtain your license. + +5. Once you're logged in, go to your account's [Licenses](https://hub.docker.com/account/licenses/) page. + +6. In the "Download and Install CS Engine" locate the script appropriate to your system. + +7. Copy the script, paste it into your terminal, and press Return. + + $ curl -s + https://packagecloud.io/install/repositories/Docker/cs-public/script.deb.sh | sudo bash sudo apt-get install docker-engine-cs + +8. Run the following to install commercially supported Docker Engine and its dependencies: +​ + $ sudo apt-get install docker-engine-cs + +9. Confirm the Docker daemon is running with `sudo service docker start`. + + $ sudo service docker start + +10. Optionally, add non-sudo access to the Docker socket by adding your user to the `docker` group. + + $ sudo usermod -a -G docker $USER + + Log out and log back in to have your new permissions take effect. + + +## Next step +You are ready to install [Docker Trusted Registry](install-dtry.md). diff --git a/install/install-dtr.md b/install/install-dtr.md new file mode 100644 index 0000000000..7ee1039a71 --- /dev/null +++ b/install/install-dtr.md @@ -0,0 +1,188 @@ ++++ +title = "Manually install Trusted Registry" +description = "Manually install Trusted Registry" +keywords = ["docker, documentation, about, technology, understanding, enterprise, hub, registry"] +[menu.main] +parent="smn_dhe_install" ++++ + + +# Manually install Trusted Registry + +This document describes the process of obtaining, installing, and securing +Docker Trusted Registry. You can use these instructions if you are installing Trusted Registry on a physical or cloud infrastructure. + +If your cloud provider is AWS, you have the option of installing Trusted Registry using an Amazon Machine Image (AMI) instead. For more information, read the [installation overview](index.md) to understand your options. + + +## Prerequisites + +Docker Trusted Registry runs on the following 64-bit platforms: + +* Ubuntu 14.04 LTS +* RHEL 7.0 and 7.1 +* CentOS 7.1 + +Docker Trusted Registry requires the latest commercially supported Docker Engine (CS Engine), running on a supported host. + +The Docker daemon listens to the Unix socket (the default) so that it can be +bind-mounted into the Trusted Registry management containers. This allows +Trusted Registry to manage itself and its updates. For this reason, the host you +install on needs internet connectivity so it can access the updates. +Additionally, your host needs to have TCP ports `80` and `443` available for the +Docker Trusted Registry container port mapping. + +Installing Trusted Registry requires that you have a login to Docker Hub (or the +user-name of an administrator of the Hub organization that obtained an +Enterprise license. If you already installed CS Engine, you should already have a [Hub account](https://hub.docker.com). + +Also, you must have a license for Docker Trusted Registry. This license allows +you to run both Docker Trusted Registry and CS Engine. Before installing, +[purchase a license or sign up for a free, 30 day trial license]((https://hub.docker.com/enterprise/)). + + +## Install Docker Trusted Registry + +Trusted Registry is a self-installing application built and distributed using +Docker and the [Docker Hub](https://hub.docker.com/). You install Docker Trusted +Registry by running the "docker/trusted-registry" container. Once installed, it +is able to restart and reconfigure itself using the Docker socket that is +bind-mounted to this container. + +1. Log in to the machine where you want to install Trusted Registry. + +2. Verify that CS Engine is installed. + + $ docker --version + + > **Note:** To remain compliant with your Docker Trusted Registry support agreement, you **must** use the current version of commercially supported Docker Engine. Running the open source version of Engine is **not** supported. + +3. Login into the Docker Hub from the command line. + + $ docker login + +4. Install the Trusted Registry + + $ sudo bash -c "$(sudo docker run docker/trusted-registry install)" + + > **Note**: `sudo` is needed for `docker/trusted-registry` commands to + > ensure that the Bash script is run with full access to the Docker host. + + The command executes a shell script that creates the needed directories, + pulls the registry's images, and run its containers. Depending on your + internet connection, this process may take several minutes to complete. A successful outcome completes as follows: + + $ sudo bash -c "$(sudo docker run docker/trusted-registry install)" + Unable to find image 'docker/trusted-registry:latest' locally + Pulling repository docker/trusted-registry + c46d58daad7d: Pulling image (latest) from docker/trusted-registry + c46d58daad7d: Pulling image (latest) from docker/trusted-registry + c46d58daad7d: Pulling dependent layers + 511136ea3c5a: Download complete + fa4fd76b09ce: Pulling metadata + fa4fd76b09ce: Pulling fs layer + ff2996b1faed: Download complete + ... + fd7612809d57: Pulling metadata + fd7612809d57: Pulling fs layer + fd7612809d57: Download complete + Status: Downloaded newer image for docker/trusted-registry:latest + Unable to find image 'docker/trusted-registry:1.1.0' locally + Pulling repository docker/trusted-registry + c46d58daad7d: Download complete + 511136ea3c5a: Download complete + ... + Status: Image is up to date for docker/trusted-registry:1.1.0 + INFO [1.0.0_8ce62a61e058] Attempting to connect to docker engine dockerHost="unix:///var/run/docker.sock" + INFO [1.0.0_8ce62a61e058] Running install command + <...output truncated...> + Creating container docker_trusted_registry_load_balancer with docker daemon unix:///var/run/docker.sock + Starting container docker_trusted_registry_load_balancer with docker daemon unix:///var/run/docker.sock + Bringing up docker_trusted_registry_log_aggregator. + Creating container docker_trusted_registry_log_aggregator with docker daemon unix:///var/run/docker.sock + Starting container docker_trusted_registry_log_aggregator with docker daemon unix:///var/run/docker.sock + +5. Use `docker ps` to list all the running containers. + + The listing should show the following were started: + + * `docker_trusted_registry_load_balancer` + * `docker_trusted_registry_image_storage_0` + * `docker_trusted_registry_image_storage_1` + * `docker_trusted_registry_admin_server` + * `docker_trusted_registry_log_aggregator` + * `docker_trusted_registry_auth_server` + * `docker_trusted_registry_postgres` + +6. Enter the `https:///`` your browser;s address bar to run the Trusted Registry interface. + + Your browser warns you that this is an unsafe site, with a self-signed, + untrusted certificate. This is normal and expected; allow this connection + temporarily. + + +## Set the Trusted Registry domain name + +The Docker Trusted Registry Administrator site will also warn that the "Domain Name" is not set. + +1. Select "Settings" from the global nav bar at the top of the page, and then set the "Domain Name" to the full host-name of your Docker Trusted Registry server. + +2. Click the "Save and Restart Docker Trusted Registry Server" button to generate a new certificate, which will be used +by both the Docker Trusted Registry Administrator web interface and the Docker Trusted Registry server. + +3. After the server restarts, you will again need to allow the connection to the untrusted Docker Trusted Registry web admin site. + +4. You see a warning notification that this instance of Docker Trusted Registry is unlicensed. You'll correct this in the next section. + +## Apply your license + +The Docker Trusted Registry services will not start until you apply your license. +To do that, you'll first download your license from the Docker Hub and then +upload it to your Docker Trusted Registry web admin server. Follow these steps: + +1. If needed, log back into the [Docker Hub](https://hub.docker.com) + using the user-name you used when obtaining your license. Under your name, go to Settings to display the Account Settings page. Click the Licenses submenu to display the Licenses page. + +2. There is a list of available licenses. Click the download button to + obtain the license file you want. + +3. Go to your Docker Trusted Registry instance in your browser, click Settings in the global nav bar. Click License in the Settings nav bar. Click the Choose File button. It opens a standard file browser. Locate and select the license file you downloaded in the previous step. Approve the selection to close the dialog. + +4. Click the Save and restart button. Docker Trusted Registry quits and then restarts with the applied the license. + +5. Verify the acceptance of the license by confirming that the "Unlicensed copy" + warning is no longer present. + +## Secure the Trusted Registry + +Securing Docker Trusted Registry is **required**. You will not be able to push +or pull from Docker Trusted Registry until you secure it. + +There are several options and methods for securing Docker Trusted Registry. For +more information, see the [configuration documentation]({{< relref +"configuration.md#security" >}}) + +## Push and pull images + +Now that you have Docker Trusted Registry configured with a "Domain Name" and +have your client Docker daemons configured with the required security settings, +you can test your setup by following the instructions for [Using Docker Trusted +Registry to Push and pull images]({{< relref "userguide.md" >}}). + +## Docker Trusted Registry web interface and registry authentication + +By default, there is no authentication set on either the Docker Trusted Registry +web admin interface or the Docker Trusted Registry. You can restrict access +using an in-Docker Trusted Registry configured set of users (and passwords), or +you can configure Docker Trusted Registry to use LDAP- based authentication. + +See [Docker Trusted Registry Authentication settings]({{< relref +"configuration.md#authentication" >}}) for more details. + +## See also + +* To configure for your environment, see the +[configuration instructions]({{< relref "configuration.md" >}}). +* To use Docker Trusted Registry, see [the User guide]({{< relref "userguide.md" >}}). +* To make administrative changes, see [the Admin guide]({{< relref "adminguide.md" >}}). +* To see previous changes, see [the release notes]({{< relref "release-notes.md" >}}). diff --git a/install/install-manual.md b/install/install-manual.md deleted file mode 100644 index 27dde652ef..0000000000 --- a/install/install-manual.md +++ /dev/null @@ -1,269 +0,0 @@ -+++ -title = "Manually install Trusted Registry" -description = "Manually install Trusted Registry" -keywords = ["docker, documentation, about, technology, understanding, enterprise, hub, registry"] -[menu.main] -parent="smn_dhe_install" -+++ - - -# Manually install Trusted Registry - -This document describes the process of obtaining, installing, and securing -Docker Trusted Registry. Trusted Registry is installed from Docker containers. -If you have not already done so, make sure you have first read the [installation -overview](index.md) for Trusted Registry. - -In general, the steps for installing the Engine for AWS AMI (BDS) are: - -1. Acquire a license by purchasing Docker Trusted Registry or signing up for a trial license. -2. Install the commercially supported Docker Engine. -3. Install Docker Trusted Registry. -4. Apply your license to your Docker Trusted Registry instance. -5. Configure your settings. - - -## Overview -Docker Trusted Registry runs on the following platforms: - -* Ubuntu 14.04 LTS -* RHEL 7.0 and 7.1 -* CentOS 7.1 - -Docker Trusted Registry requires the following: - -* The latest commercially supported Docker Engine, running -on a supported host. - -> **Note:** In order to remain in compliance with your Docker Trusted Registry support agreement, -> you **must** use the current version of commercially supported Docker Engine. -> Running the open source version of Engine is **not** supported. - -* The Docker daemon needs to be listening to the unix socket (the default) so -that it can be bind-mounted into the Docker Trusted Registry management containers, allowing -Docker Trusted Registry to manage itself and its updates. For this reason, your Docker Trusted Registry host will also -need internet connectivity so it can access the updates. - -* Your host needs to have TCP ports `80` and `443` available for the Docker Trusted Registry -container port mapping. - -* You need the Docker Hub user-name and password used when obtaining -the Docker Trusted Registry license (or the user-name of an administrator of the Hub organization -that obtained an Enterprise license). - -## Get your license - -To start, get your copy of Docker Trusted Registry, including a free trial, at the [Docker Subscription page](https://hub-beta.docker.com/enterprise/). - -Go to the license [documentation]({{< relref "license.md" >}}) to read about how to download the license. When you're finished, continue to the next step. - -### Install the commercially supported Docker Engine - -You download and save the CS engine install script from the Licenses page. Follow these [cs engine install ]({{< relref "csengineinstall.md" >}}) directions and then return to this document to continue the install. - -#### CentOS 7.1 & RHEL 7.0/7.1 installation - -1. Copy the downloaded Bash setup script to your RHEL host. -2. Run the following to install commercially supported Docker Engine and its dependencies. -3. Start the Docker daemon: - -``` -$ sudo yum update && sudo yum upgrade -$ chmod 755 docker-cs-engine-rpm.sh -$ sudo bash ./docker-cs-engine-rpm.sh -$ sudo yum install docker-engine-cs -$ sudo systemctl enable docker.service -$ sudo systemctl start docker.service -``` - -In order to simplify using Docker, you can get non-sudo access to the Docker -socket by adding your user to the `docker` group, then logging out and back in -again: - -``` -$ sudo usermod -a -G docker $USER -$ exit -``` - -> **Notes**: -> * You may need to reboot your server to update its RHEL kernel. -> * CentOS 7.0 is not supported. - - -#### Ubuntu 14.04 LTS installation - -1. Copy the downloaded Bash setup script to your Ubuntu host. -2. Run the following to install commercially supported Docker Engine and its dependencies: - - - $ sudo apt-get update && sudo apt-get upgrade - $ sudo apt-get install -y linux-image-extra-virtual - $ sudo reboot - $ chmod 755 docker-cs-engine-deb.sh - $ sudo ./docker-cs-engine-deb.sh - $ sudo apt-get install docker-engine-cs - -3. Confirm Docker is running with `sudo service docker start`. - -4. (Optional) In order to simplify using Docker, get non-sudo access to the Docker socket by adding your user to the `docker` group, then logging out and back in again: - -``` -$ sudo usermod -a -G docker $USER -$ exit -``` - -> **Note**: you may need to reboot your server to update its LTS kernel. - - -## Install Docker Trusted Registry - -Once the commercially supported Docker Engine is installed, you can install Docker Trusted Registry -itself. Docker Trusted Registry is a self-installing application built and distributed using Docker -and the [Docker Hub](https://hub-beta.docker.com/). It is able to restart -and reconfigure itself using the Docker socket that is bind-mounted to its -container. - -Install Docker Trusted Registry by running the "docker/trusted-registry" container: - -``` - $ sudo bash -c "$(sudo docker run docker/trusted-registry install)" -``` - -> **Note**: `sudo` is needed for `docker/trusted-registry` commands to -> ensure that the Bash script is run with full access to the Docker host. - -The command will execute a shell script that creates the needed -directories and then runs Docker to pull Docker Trusted Registry's images and run its containers. - -Depending on your internet connection, this process may take several minutes to -complete. - -A successful installation will pull a large number of Docker images and should -display output similar to: - -``` -$ sudo bash -c "$(sudo docker run docker/trusted-registry install)" -Unable to find image 'docker/trusted-registry:latest' locally -Pulling repository docker/trusted-registry -c46d58daad7d: Pulling image (latest) from docker/trusted-registry -c46d58daad7d: Pulling image (latest) from docker/trusted-registry -c46d58daad7d: Pulling dependent layers -511136ea3c5a: Download complete -fa4fd76b09ce: Pulling metadata -fa4fd76b09ce: Pulling fs layer -ff2996b1faed: Download complete -... -fd7612809d57: Pulling metadata -fd7612809d57: Pulling fs layer -fd7612809d57: Download complete -c46d58daad7d: Pulling metadata -c46d58daad7d: Pulling fs layer -c46d58daad7d: Download complete -c46d58daad7d: Download complete -Status: Downloaded newer image for docker/trusted-registry:latest -Unable to find image 'docker/trusted-registry:1.1.0' locally -Pulling repository docker/trusted-registry -c46d58daad7d: Download complete -511136ea3c5a: Download complete -fa4fd76b09ce: Download complete -1c8294cc5160: Download complete -117ee323aaa9: Download complete -2d24f826cb16: Download complete -33bfc1956932: Download complete -48f0dd6c9414: Download complete -65c30f72ecb2: Download complete -d4b29764d0d3: Download complete -5654f4fe5384: Download complete -9b9faa6ecd11: Download complete -0c275f56ca5c: Download complete -ff2996b1faed: Download complete -fd7612809d57: Download complete -Status: Image is up to date for docker/trusted-registry:1.1.0 -INFO [1.0.0_8ce62a61e058] Attempting to connect to docker engine dockerHost="unix:///var/run/docker.sock" -INFO [1.0.0_8ce62a61e058] Running install command -<...output truncated...> -Creating container docker_trusted_registry_load_balancer with docker daemon unix:///var/run/docker.sock -Starting container docker_trusted_registry_load_balancer with docker daemon unix:///var/run/docker.sock -Bringing up docker_trusted_registry_log_aggregator. -Creating container docker_trusted_registry_log_aggregator with docker daemon unix:///var/run/docker.sock -Starting container docker_trusted_registry_log_aggregator with docker daemon unix:///var/run/docker.sock -$ docker ps -CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES -963ec2a4b047 docker/trusted-registry-nginx:1.1.0 "nginxWatcher" 5 minutes ago Up 5 minutes 0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp docker_trusted_registry_load_balancer -7eade5529049 docker/trusted-registry-distribution:v2.0.1 "registry /config/st 5 minutes ago Up 5 minutes 5000/tcp docker_trusted_registry_image_storage_0 -b968a8a986f9 docker/trusted-registry-distribution:v2.0.1 "registry /config/st 5 minutes ago Up 5 minutes 5000/tcp docker_trusted_registry_image_storage_1 -390d9d68a33a docker/trusted-registry-admin-server:1.1.0 "server" 5 minutes ago Up 5 minutes 80/tcp docker_trusted_registry_admin_server -3f8a53dc5f35 docker/trusted-registry-log-aggregator:1.1.0 "log-aggregator" 5 minutes ago Up 5 minutes docker_trusted_registry_log_aggregator -44083421fa16 docker/trusted-registry-garant:1.1.0 "garant /config/gara 5 minutes ago Up 5 minutes docker_trusted_registry_auth_server -c4102adf73dc postgres:9.4.1 "/docker-entrypoint. 5 minutes ago Up 5 minutes 5432/tcp docker_trusted_registry_postgres -``` - -Once this process completes, you can manage and configure your Docker Trusted Registry instance by pointing your browser to `https:///`. - -Your browser warns you that this is an unsafe site, with a self-signed, -untrusted certificate. This is normal and expected; allow this connection -temporarily. - -### Setting the Docker Trusted Registry Domain Name - -The Docker Trusted Registry Administrator site will also warn that the "Domain Name" is not set. - -1. Select "Settings" from the global nav bar at the top of the page, and then set the "Domain Name" to the full host-name of your Docker Trusted Registry server. - -2. Click the "Save and Restart Docker Trusted Registry Server" button to generate a new certificate, which will be used -by both the Docker Trusted Registry Administrator web interface and the Docker Trusted Registry server. - -3. After the server restarts, you will again need to allow the connection to the untrusted Docker Trusted Registry web admin site. - -4. You see a warning notification that this instance of Docker Trusted Registry is unlicensed. You'll correct this in the next section. - -### Apply your license - -The Docker Trusted Registry services will not start until you apply your license. -To do that, you'll first download your license from the Docker Hub and then -upload it to your Docker Trusted Registry web admin server. Follow these steps: - -1. If needed, log back into the [Docker Hub](https://hub.docker.com) - using the user-name you used when obtaining your license. Under your name, go to Settings to display the Account Settings page. Click the Licenses submenu to display the Licenses page. - -2. There is a list of available licenses. Click the download button to - obtain the license file you want. - -3. Go to your Docker Trusted Registry instance in your browser, click Settings in the global nav bar. Click License in the Settings nav bar. Click the Choose File button. It opens a standard file browser. Locate and select the license file you downloaded in the previous step. Approve the selection to close the dialog. - -4. Click the Save and restart button. Docker Trusted Registry quits and then restarts with the applied the license. - -5. Verify the acceptance of the license by confirming that the "Unlicensed copy" - warning is no longer present. - -### Securing Docker Trusted Registry - -Securing Docker Trusted Registry is **required**. You will not be able to push or pull from Docker Trusted Registry until you secure it. - -There are several options and methods for securing Docker Trusted Registry. For more information, -see the [configuration documentation]({{< relref "configuration.md#security" >}}) - -### Using Docker Trusted Registry to push and pull images - -Now that you have Docker Trusted Registry configured with a "Domain Name" and have your client -Docker daemons configured with the required security settings, you can test your -setup by following the instructions for -[Using Docker Trusted Registry to Push and pull images]({{< relref "userguide.md" >}}). - -### Docker Trusted Registry web interface and registry authentication - -By default, there is no authentication set on either the Docker Trusted Registry web admin -interface or the Docker Trusted Registry. You can restrict access using an in-Docker Trusted Registry -configured set of users (and passwords), or you can configure Docker Trusted Registry to use LDAP- -based authentication. - -See [Docker Trusted Registry Authentication settings]({{< relref "configuration.md#authentication" >}}) for more -details. - -## See also - -* To configure for your environment, see the -[configuration instructions]({{< relref "configuration.md" >}}). -* To use Docker Trusted Registry, see [the User guide]({{< relref "userguide.md" >}}). -* To make administrative changes, see [the Admin guide]({{< relref "adminguide.md" >}}). -* To see previous changes, see [the release notes]({{< relref "release-notes.md" >}}). diff --git a/install/upgrade.md b/install/upgrade.md index 23cb4bb7fd..6fedee4189 100644 --- a/install/upgrade.md +++ b/install/upgrade.md @@ -77,6 +77,6 @@ and then start the Trusted Registry again: * To configure for your environment, see the [configuration instructions]({{< relref "configuration.md" >}}). * To use Docker Trusted Registry, see [the User guide]({{< relref "userguide.md" >}}). -* See [installing the CS engine]({{< relref "csengineinstall.md" >}}). +* See [installing the CS engine](install-csengine.md). * To make administrative changes, see [the Admin guide]({{< relref "adminguide.md" >}}). * To see previous changes, see [the release notes]({{< relref "release-notes.md" >}}). diff --git a/license.md b/license.md index 48c46afe80..2e4ea940be 100644 --- a/license.md +++ b/license.md @@ -11,20 +11,19 @@ weight=9 # Licensing -To run Docker Trusted Registry, you need a Docker license, obtained either by purchasing -Docker Trusted Registry,acquiring a trial license, or through an AWS hourly subscription. The license is associated with your free Docker Hub account or Docker Hub organization. If you don't have an account, -you can set one up, which can be done at the same time as your license -request. +To run Docker Trusted Registry, you need a Docker license, obtained either by +purchasing Docker Trusted Registry, acquiring a trial license, or through an AWS +hourly subscription. If you a purchase a license or you have a trial license, it is associated with your free Docker Hub account or Docker Hub organization. ## Get your Trusted Registry License -1. Go to the [Docker Subscription page](https://hub-beta.docker.com/enterprise/) and select an edition. After completing a brief registration process, follow the steps to acquire it. +1. Go to the [Docker Subscription page](https://hub.docker.com/enterprise/) and select an edition. After completing a brief registration process, follow the steps to acquire it. **Note**: You may need to disable any pop-up blocker installed on your browser in order to complete the download. 2. After acquiring your license, view or download it by logging in to Docker Hub, going to your account settings (gear icon at upper right), and -selecting ["Licenses"](https://hub-beta.docker.com/account/licenses/) from the +selecting ["Licenses"](https://hub.docker.com/account/licenses/) from the top nav bar. Download the license by clicking the cloud icon. The Licenses page displays your currently available licenses and if you selected the trial license, it also keeps track of how many trial days are remaining. @@ -34,4 +33,4 @@ When installing Docker Trusted Registry, you must first obtain your license, the **Note** The Licenses page is where you download the CS engine script by selecting the operating system it needs to run on. ## See also -* For information on how to download the CS engine, see [Installing the CS engine]({{< relref "csengineinstall.md" >}}). +* For information on how to download the CS engine, see [Installing the CS engine](install-csengine.md).