From ef28f705dda36d6a885e9694b5748f18f5cca660 Mon Sep 17 00:00:00 2001 From: Dockertopia <103652162+dockertopia@users.noreply.github.com> Date: Mon, 5 Sep 2022 10:35:30 +0100 Subject: [PATCH] Install page improvement based on feedback (scenario2) (#15494) * Install page improvement based on users and PM feedback * Exploring a second scenario deriving from additional feedback * Review feedback --- _data/toc.yaml | 18 +-- compose/index.md | 2 +- compose/install/compose-desktop.md | 23 --- compose/install/compose-plugin.md | 185 ---------------------- compose/install/index.md | 51 ++++-- compose/install/linux.md | 122 ++++++++++++++ compose/install/other.md | 66 ++++++++ compose/install/uninstall.md | 52 +++--- desktop/images/about_desktop_versions.png | Bin 0 -> 60082 bytes engine/security/trust/index.md | 2 +- engine/security/trust/trust_key_mng.md | 5 +- 11 files changed, 264 insertions(+), 262 deletions(-) delete mode 100644 compose/install/compose-desktop.md delete mode 100644 compose/install/compose-plugin.md create mode 100644 compose/install/linux.md create mode 100644 compose/install/other.md create mode 100644 desktop/images/about_desktop_versions.png diff --git a/_data/toc.yaml b/_data/toc.yaml index 7c7b2bc605..56f9d9ebee 100644 --- a/_data/toc.yaml +++ b/_data/toc.yaml @@ -1420,16 +1420,16 @@ manuals: - sectiontitle: Docker Compose section: - path: /compose/ - title: Overview of Docker Compose - - sectiontitle: Install Compose + title: Overview + - sectiontitle: Install Docker Compose section: - path: /compose/install/ - title: Install Docker Compose - - path: /compose/install/compose-desktop/ - title: Install Compose plugin through Desktop - - path: /compose/install/compose-plugin/ - title: Install Docker Compose Plugin - - path: /compose/install/uninstall/ + title: Install overview + - path: /compose/install/linux/ + title: Install on Linux + - path: /compose/install/other/ + title: Other install scenarios + - path: /compose/install/uninstall/ title: Uninstall Docker Compose - path: /compose/gettingstarted/ title: Getting started @@ -1516,8 +1516,6 @@ manuals: section: - path: /docker-hub/publish/ title: Overview - - path: /docker-hub/publish/insights-analytics/ - title: Insights & analytics - path: /docker-hub/publish/publisher-center-migration/ title: Migrate content from the Publisher Center - path: /docker-hub/release-notes/ diff --git a/compose/index.md b/compose/index.md index 43167e459b..512949ec9e 100644 --- a/compose/index.md +++ b/compose/index.md @@ -1,7 +1,7 @@ --- description: Introduction and Overview of Compose keywords: documentation, docs, docker, compose, orchestration, containers -title: Overview of Docker Compose +title: Overview redirect_from: - /compose/cli-command/ - /compose/networking/swarm/ diff --git a/compose/install/compose-desktop.md b/compose/install/compose-desktop.md deleted file mode 100644 index 215e24ddb0..0000000000 --- a/compose/install/compose-desktop.md +++ /dev/null @@ -1,23 +0,0 @@ ---- -description: How to install Docker Compose through Docker Desktop -keywords: compose, orchestration, install, installation, docker, documentation - -title: Install Compose through Docker Desktop ---- - - - -With Docker Desktop you get Docker Engine, Docker CLI with Compose plugin as well as other components and tools. -Check a list of what's shipped with Docker Desktop and a list of key features in the [Docker Desktop Overview](../../desktop/index.md){:target="_blank" rel="noopener" class="_"} page. - -Docker Desktop is available for Mac, Windows, and Linux. -For download information, system requirements, and installation instructions, see: - -* [Docker Desktop for Linux](../../desktop/install/linux-install.md){:target="_blank" rel="noopener" class="_"} -* [Docker Desktop for Mac](../../desktop/install/mac-install.md){:target="_blank" rel="noopener" class="_"} -* [Docker Desktop for Windows](../../desktop/install/windows-install.md){:target="_blank" rel="noopener" class="_"} - -For information about Docker Desktop licensing, see [Docker Desktop License Agreement](../../subscription/index.md#docker-desktop-license-agreement){:target="_blank" rel="noopener" class="_"}. - - - diff --git a/compose/install/compose-plugin.md b/compose/install/compose-plugin.md deleted file mode 100644 index 9071180848..0000000000 --- a/compose/install/compose-plugin.md +++ /dev/null @@ -1,185 +0,0 @@ ---- -description: How to install Docker Compose CLI plugin -keywords: compose, orchestration, install, installation, docker, documentation -toc_max: 3 - -title: Install Docker Compose CLI plugin ---- - -On this page you can find instructions on how to install the Compose plugin for Docker CLI on Linux and Windows Server operating systems. ->Note that installing Docker Compose as a plugin requires Docker CLI. - -## Installing Compose on Linux systems - -In this section, you can find various methods for installing Compose on Linux. - -### Installation methods - -* [Installing Docker Desktop for Linux](../../desktop/install/linux-install.md/){:target="_blank" rel="noopener" class="_"} is the easiest and recommended installation route. -Check the Desktop for Linux [supported platforms](../../desktop/install/linux-install.md/#supported-platforms){:target="_blank" rel="noopener" class="_"} page to verify the supported Linux distributions and architectures. - - -The following other methods are possible: - -* __Using the automated convenience scripts__ (for testing and development environments). -These scripts install Docker Engine and Docker CLI with the Compose plugin. -For this route, go to the [Docker Engine install](../../../engine/install/){:target="_blank" rel="noopener" class="_"} page and follow the provided instructions. _After installing Desktop for Linux, this is the recommended route._ - -* __Setting up Docker's repository__ and using it to install Docker CLI Compose plugin. See the [Install using the repository](#install-using-the-repository) section on this page. _This is the second best route._ - -* __Installing the Docker CLI Compose plugin manually__. See the [Install the plugin manually](#install-the-plugin-manually) section on this page. _Note that this option requires you to manage upgrades manually as well._ - - -### Install using the repository - -> **Note** -> ->These instructions assume you already have Docker Engine and Docker CLI installed and now want to install the Compose plugin. -For other Linux installation methods see [this summary](#installation-methods). - ->To run Compose as a non-root user, see [Manage Docker as a non-root user](../../engine/install/linux-postinstall.md){:target="_blank" rel="noopener" class="_"}. - - -If you have already set up the Docker repository jump to step 2. - -1. Set up the repository. Go to the "Set up the repository" section of the chosen [Linux distribution](../../engine/install/index.md#server){:target="_blank" rel="noopener" class="_"}. found on the Docker Engine installation pages to check the instructions. - -2. Update the `apt` package index, and install the _latest version_ of Docker Compose: - - > Or, if using a different distro, use the equivalent package manager instructions. - - - ```console - $ sudo apt-get update - $ sudo apt-get install docker-compose-plugin - ``` - - Alternatively, to install a specific version of Compose CLI plugin: - - a. List the versions available in your repo: - - - ```console - $ apt-cache madison docker-compose-plugin - - docker-compose-plugin | 2.3.3~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable arm64 Packages - ``` - - b. From the list obtained use the version string you can in the second column to specify the version you wish to install. - - c. Install the selected version: - - - ```console - $ sudo apt-get install docker-compose-plugin= - ``` - where `` is, for example,`2.3.3~ubuntu-focal`. - -3. Verify that Docker Compose is installed correctly by checking the version. - - ```console - $ docker compose version - Docker Compose version v2.3.3 - ``` - -### Install the plugin manually - -> **Note** -> -> These instructions assume you already have Docker Engine and Docker CLI installed and now want to install the Compose plugin. -> -> Note as well this option requires you to manage upgrades manually. Whenever possible we recommend any of the other installation methods listed. For other Linux installation methods see [this summary](#installation-methods). - ->To run Compose as a non-root user, see [Manage Docker as a non-root user](../../engine/install/linux-postinstall.md). - - -1. To download and install the Compose CLI plugin, run: - - ```console - $ DOCKER_CONFIG=${DOCKER_CONFIG:-$HOME/.docker} - $ mkdir -p $DOCKER_CONFIG/cli-plugins - $ curl -SL https://github.com/docker/compose/releases/download/{{site.compose_version}}/docker-compose-linux-x86_64 -o $DOCKER_CONFIG/cli-plugins/docker-compose - ``` - - This command downloads the latest release of Docker Compose (from the Compose releases repository) and installs Compose for the active user under `$HOME` directory. - - > To install: - >* Docker Compose for _all users_ on your system, replace `~/.docker/cli-plugins` with `/usr/local/lib/docker/cli-plugins`. - >* A different version of Compose, substitute `{{site.compose_version}}` with the version of Compose you want to use. - -2. Apply executable permissions to the binary: - - ```console - $ chmod +x $DOCKER_CONFIG/cli-plugins/docker-compose - ``` - or, if you chose to install Compose for all users: - - ```console - $ sudo chmod +x /usr/local/lib/docker/cli-plugins/docker-compose - ``` - -3. Test the installation. - - ```console - $ docker compose version - Docker Compose version {{site.compose_version}} - ``` - -> **Note** -> ->__Compose standalone__: If you need to use Compose without installing the Docker CLI, the instructions for the standalone scenario are similar. -> Note the target folder for the binary's installation is different as well as the compose syntax used with the plugin (_space compose_) or the standalone version (_dash compose_). - -1. To download and install Compose standalone, run: - ```console - $ curl -SL https://github.com/docker/compose/releases/download/{{site.compose_version}}/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose - ``` -2. Apply executable permissions to the standalone binary in the target path for the installation. -3. Test and execute compose commands using `docker-compose`. - -> **Note** -> -> If the command `docker-compose` fails after installation, check your path. -> You can also create a symbolic link to `/usr/bin` or any other directory in your path. -> For example: -> ```console -> $ sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose -> ``` - - -## Install Compose on Windows Server - -Follow these instructions if you are running the Docker daemon and client directly -on Microsoft Windows Server and want to install Docker Compose. - - -1. Run a PowerShell as an administrator. -When asked if you want to allow this app to make changes to your device, click **Yes** in order to proceed with the installation. - -2. GitHub now requires TLS1.2. In PowerShell, run the following: - - ```powershell - [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 - ``` -3. Run the following command to download the latest release of Compose ({{site.compose_version}}): - - ```powershell - Invoke-WebRequest "https://github.com/docker/compose/releases/download/{{site.compose_version}}/docker-compose-Windows-x86_64.exe" -UseBasicParsing -OutFile $Env:ProgramFiles\Docker\docker-compose.exe - ``` - - > **Note** - > - > On Windows Server 2019 you can add the Compose executable to `$Env:ProgramFiles\Docker`. - Because this directory is registered in the system `PATH`, you can run the `docker-compose --version` - command on the subsequent step with no additional configuration. - - > To install a different version of Compose, substitute `{{site.compose_version}}` - > with the version of Compose you want to use. - -4. Test the installation. - - ```console - $ docker compose version - Docker Compose version {{site.compose_version}} - ``` - diff --git a/compose/install/index.md b/compose/install/index.md index c2992528ff..2d491327ee 100644 --- a/compose/install/index.md +++ b/compose/install/index.md @@ -2,31 +2,45 @@ description: How to install Docker Compose keywords: compose, orchestration, install, installation, docker, documentation title: Install Docker Compose -toc_max: 2 +toc_max: 3 +redirect_from: +- /compose/compose-desktop/ --- -On this page you can find a summary of the available options for installing Docker Compose. +On this page you can find information on how to get and install Compose. -## Compose prerequisites +## Install Compose -* Docker Compose requires Docker Engine. -* Docker Compose plugin requires Docker CLI. +If you have Docker Desktop, you've got a full Docker installation, including Compose. -## Compose installation scenarios -You can run Compose on macOS, Windows, and 64-bit Linux. Check what installation scenario fits your needs. +You can check this by clicking on **About Docker Desktop** from the Docker menu ![whale menu](../../desktop/images/whale-x.png){: .inline}. -Are you looking to: +![about-desktop](../../desktop/images/about_desktop_versions.png){:width="750px"} -* __Get latest Docker Compose and its prerequisites__: -[Install Docker Desktop for your platform](./compose-desktop.md). This is the fastest route and you get Docker Engine and Docker CLI with the Compose plugin. Docker Desktop is available for Mac, Windows and Linux. +### New Docker Installation + +If you haven’t yet installed Docker Desktop: + +{% assign yes = '![yes](/images/green-check.svg){: .inline style="height: 14px; margin: 0 auto; align=right"}' %} + +| Platform | Docker Desktop | +|:---------------|:------------------------------:| +|Linux (64-bit) |{{ yes }} [Install](../../desktop/install/linux-install.md)| +|Mac |{{ yes }} [Install](../../desktop/install/mac-install.md)| +|Windows |{{ yes }} [Install](../../desktop/install/windows-install.md)| + + +### Pre-existing Docker Installation + +If you have a Docker installation on Linux to which you want to add the Compose plugin, you can choose one of these options: + +* [Install using the repository](./linux.md#install-using-the-repository) +* [Install the plugin manually](./linux.md#install-the-plugin-manually) + +### Other install scenarios + +For other options, see [Other install scenarios](./other.md). -* __Install Compose plugin:__ - + __(Mac, Win, Linux) Docker Desktop__: If you have Desktop installed then you already have the Compose plugin installed. - + __Linux systems__: To install the Docker CLI's Compose plugins use one of these methods of installation: - + Using the [convenience scripts](../../engine/install/#server){: target="_blank" rel="noopener" class="_"} offered per Linux distro from the Engine install section. - + [Setting up Docker's repository](compose-plugin#install-using-the-repository) and using it to install the compose plugin package. - + Other scenarios, check the [Linux install](compose-plugin#installing-compose-on-linux-systems). - + __Windows Server__: If you want to run the Docker daemon and client directly on Microsoft Windows Server, follow the [Windows Server install instructions](compose-plugin#install-compose-on-windows-server). ## Where to go next @@ -35,3 +49,6 @@ Are you looking to: - [Compose file reference](../compose-file/index.md) - [Sample apps with Compose](../samples-for-compose.md) +## Feedback + +We'd love to hear from you about the improvements we've recently made to the Docker Compose installation instructions. Let us know what you think by completing this short [survey](https://survey.alchemer.com/s3/7002962/Compose-Install-Documentation-Feedback){:target="_blank" rel="noopener" class="_"}. \ No newline at end of file diff --git a/compose/install/linux.md b/compose/install/linux.md new file mode 100644 index 0000000000..e875d71b85 --- /dev/null +++ b/compose/install/linux.md @@ -0,0 +1,122 @@ +--- +description: How to install Docker Compose on Linux +keywords: compose, orchestration, install, installation, docker, documentation +toc_max: 3 + +title: Install on Linux +redirect_from: +- /compose/compose-plugin/ +- /compose/compose-linux/ + +--- + +On this page you can find instructions on how to install the Compose on Linux from the command line. + +## Install Compose + +To install Compose: +* Option 1: [Set up Docker's repository on your Linux system](#install-using-the-repository). +* Option 2: [Install Compose manually](#install-the-plugin-manually). + +### Install using the repository + +> **Note** +> +> These instructions assume you already have Docker Engine and Docker CLI installed and now want to install the Compose plugin. +For Compose standalone, see [Install Compose Standalone](other.md#install-compose-standalone). + +If you have already set up the Docker repository, jump to step 2. + +1. Set up the repository. Find distro-specific instructions in: + + [Ubuntu](../../engine/install/ubuntu.md/#set-up-the-repository) | + [CentOS](../../engine/install/centos.md/#set-up-the-repository) | + [Debian](../../engine/install/debian.md/#set-up-the-repository) | + [Fefora](../../engine/install/fedora.md/#set-up-the-repository) | + [RHEL](../../engine/install/rhel.md/#set-up-the-repository) | + [SLES](../../engine/install/sles.md/#set-up-the-repository). + +2. Update the package index, and install the _latest version_ of Docker Compose: + + * Ubuntu, Debian: + + ```console + $ sudo apt-get update + $ sudo apt-get install docker-compose-plugin + ``` + * RPM-based distros: + + ```console + $ sudo yum update + $ sudo yum install docker-compose-plugin + ``` + +3. Verify that Docker Compose is installed correctly by checking the version. + + ```console + $ docker compose version + Docker Compose version vN.N.N + ``` + +Where `vN.N.N` is placeholder text standing in for the latest version. + +#### Update Compose + +* Ubuntu, Debian: + + ```console + $ sudo apt-get update + $ sudo apt-get install docker-compose-plugin + ``` +* RPM-based distros: + + ```console + $ sudo yum update + $ sudo yum install docker-compose-plugin + ``` + +### Install the plugin manually + +> **Note** +> +> This option requires you to manage upgrades manually. We recommend setting up Docker's repository for an easier maintenance. + +1. To download and install the Compose CLI plugin, run: + + ```console + $ DOCKER_CONFIG=${DOCKER_CONFIG:-$HOME/.docker} + $ mkdir -p $DOCKER_CONFIG/cli-plugins + $ curl -SL https://github.com/docker/compose/releases/download/{{site.compose_version}}/docker-compose-linux-x86_64 -o $DOCKER_CONFIG/cli-plugins/docker-compose + ``` + + This command downloads the latest release of Docker Compose (from the Compose releases repository) and installs Compose for the active user under `$HOME` directory. + + To install: + * Docker Compose for _all users_ on your system, replace `~/.docker/cli-plugins` with `/usr/local/lib/docker/cli-plugins`. + * A different version of Compose, substitute `{{site.compose_version}}` with the version of Compose you want to use. + + +2. Apply executable permissions to the binary: + + ```console + $ chmod +x $DOCKER_CONFIG/cli-plugins/docker-compose + ``` + or, if you chose to install Compose for all users: + + ```console + $ sudo chmod +x /usr/local/lib/docker/cli-plugins/docker-compose + ``` + +3. Test the installation. + + ```console + $ docker compose version + Docker Compose version {{site.compose_version}} + ``` + +## Where to go next + +- [Manage Docker as a non-root user](../../engine/install/linux-postinstall.md) +- [Command line reference](../../reference/index.md) +- [Compose file reference](../compose-file/index.md) +- [Sample apps with Compose](../samples-for-compose.md) diff --git a/compose/install/other.md b/compose/install/other.md new file mode 100644 index 0000000000..27c80bee20 --- /dev/null +++ b/compose/install/other.md @@ -0,0 +1,66 @@ +--- +description: How to install Docker Compose - Other Scenarios +keywords: compose, orchestration, install, installation, docker, documentation +toc_max: 3 + +title: Other install Scenarios +--- + +## Install Compose Standalone + +### On Linux +> **Compose standalone** +> +> Note that Compose standalone uses the _dash compose_ syntax instead of current's standard syntax (_space compose_). +For example: type `docker-compose up` when using Compose standalone, instead of `docker compose up`. + +1. To download and install Compose standalone, run: + ```console + $ curl -SL https://github.com/docker/compose/releases/download/{{site.compose_version}}/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose + ``` +2. Apply executable permissions to the standalone binary in the target path for the installation. +3. Test and execute compose commands using `docker-compose`. + +> **Note** +> +> If the command `docker-compose` fails after installation, check your path. +> You can also create a symbolic link to `/usr/bin` or any other directory in your path. +> For example: +> ```console +> $ sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose +> ``` + +### On Windows Server + +Follow these instructions if you are running the Docker daemon and client directly +on Microsoft Windows Server and want to install Docker Compose. + +1. Run a PowerShell as an administrator. +When asked if you want to allow this app to make changes to your device, click **Yes** in order to proceed with the installation. + +2. GitHub now requires TLS1.2. In PowerShell, run the following: + + ```powershell + [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 + ``` +3. Run the following command to download the latest release of Compose ({{site.compose_version}}): + + ```powershell + Invoke-WebRequest "https://github.com/docker/compose/releases/download/{{site.compose_version}}/docker-compose-Windows-x86_64.exe" -UseBasicParsing -OutFile $Env:ProgramFiles\Docker\docker-compose.exe + ``` + + > **Note** + > + > On Windows Server 2019 you can add the Compose executable to `$Env:ProgramFiles\Docker`. + Because this directory is registered in the system `PATH`, you can run the `docker-compose --version` + command on the subsequent step with no additional configuration. + + > To install a different version of Compose, substitute `{{site.compose_version}}` + > with the version of Compose you want to use. + +4. Test the installation. + + ```console + $ docker compose version + Docker Compose version {{site.compose_version}} + ``` \ No newline at end of file diff --git a/compose/install/uninstall.md b/compose/install/uninstall.md index 20f684a464..f57173e94e 100644 --- a/compose/install/uninstall.md +++ b/compose/install/uninstall.md @@ -5,57 +5,63 @@ keywords: compose, orchestration, uninstall, uninstallation, docker, documentati title: Uninstall Docker Compose --- -Uninstalling Docker Compose depends on the method you have used to install Docker Compose. -On this page you can find specific instructions to uninstall Docker Compose. +Uninstalling Docker Compose depends on the method you have used to install Docker Compose. On this page you can find specific instructions to uninstall Docker Compose. ### Uninstalling Docker Desktop If you want to uninstall Compose and you have installed Docker Desktop, follow the corresponding link bellow to get instructions on how to remove Docker Desktop. -> Note that, unless you have other Docker instances installed on that specific environment, you would be removing Docker altogether by uninstalling the Desktop. + +> **Note** +> +> Unless you have other Docker instances installed on that specific environment, you would be removing Docker altogether by uninstalling the Desktop. See Uninstall Docker Desktop for: -* [Mac](../../desktop/install/mac-install.md/#uninstall-docker-desktop){:target="_blank" rel="noopener" class="_"} -* [Windows](../../desktop/install/windows-install.md/#uninstall-docker-desktop){:target="_blank" rel="noopener" class="_"} -* [Linux](../../desktop/install/linux-install.md/#uninstall-docker-desktop){:target="_blank" rel="noopener" class="_"} - +[Mac](../../desktop/install/mac-install.md/#uninstall-docker-desktop){:target="_blank" rel="noopener" class="_"} | +[Windows](../../desktop/install/windows-install.md/#uninstall-docker-desktop){:target="_blank" rel="noopener" class="_"} | +[Linux](../../desktop/install/linux-install.md/#uninstall-docker-desktop){:target="_blank" rel="noopener" class="_"}. ### Uninstalling the Docker Compose CLI plugin To remove the Compose CLI plugin, run: +Ubuntu, Debian: + ```console $ sudo apt-get remove docker-compose-plugin ``` -Or, if using a different distro, use the equivalent package manager instruction to remove `docker-compose-plugin`. +RPM-based distros: -__Manually installed__ +```console +$ sudo yum remove docker-compose-plugin +``` -If you used `curl` to install Compose CLI plugin, to uninstall it run: +#### Manually installed + +If you used `curl` to install Compose CLI plugin, to uninstall it, run: ```console $ rm $DOCKER_CONFIG/cli-plugins/docker-compose ``` - -or, if you have installed Compose for all users, run: + +#### Remove for all users + +Or, if you have installed Compose for all users, run: ```console $ rm /usr/local/lib/docker/cli-plugins/docker-compose ``` -You can also use: - -{% raw %} -```console -$ docker info --format '{{range .ClientInfo.Plugins}}{{if eq .Name "compose"}}{{.Path}}{{end}}{{end}}' -``` -{% endraw %} - -to inspect the location of the Compose CLI plugin. - - > Got a **Permission denied** error? > > If you get a **Permission denied** error using either of the above > methods, you do not have the permissions allowing you to remove > `docker-compose`. To force the removal, prepend `sudo` to either of the above instructions and run it again. + +#### Inspect the location of the Compose CLI plugin + +To check where Compose is installed, use: + +```console +$ docker info --format '{{range .ClientInfo.Plugins}}{{if eq .Name "compose"}}{{.Path}}{{end}}{{end}}' +``` \ No newline at end of file diff --git a/desktop/images/about_desktop_versions.png b/desktop/images/about_desktop_versions.png new file mode 100644 index 0000000000000000000000000000000000000000..c426fb06fb7568547823721db5c80bb00fbc3a3e GIT binary patch literal 60082 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 z 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 **WARNING** > -> Loss of the root key is **very difficult** to recover from. +> The root key once lost is not recoverable. > Correcting this loss requires intervention from [Docker > Support](/support/) to reset the repository state. This loss > also requires **manual intervention** from every consumer that used a signed diff --git a/engine/security/trust/trust_key_mng.md b/engine/security/trust/trust_key_mng.md index a8aa06b8e5..9215196cb8 100644 --- a/engine/security/trust/trust_key_mng.md +++ b/engine/security/trust/trust_key_mng.md @@ -47,8 +47,9 @@ All the Docker trust keys are stored encrypted using the passphrase you provide on creation. Even so, you should still take care of the location where you back them up. Good practice is to create two encrypted USB keys. -It is very important that you back up your keys to a safe, secure location. Loss -of the repository key is recoverable; loss of the root key is not. +> **Important** +> It is very important that you back up your keys to a safe, secure location. Loss of the repository key is recoverable. Loss of the root key is not. +{:important} The Docker client stores the keys in the `~/.docker/trust/private` directory. Before backing them up, you should `tar` them into an archive: