Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Addressing feedback from new installation instructions #1172

Merged
merged 2 commits into from
Jan 19, 2017
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
43 changes: 14 additions & 29 deletions engine/installation/binaries.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,10 @@ If you want to try Docker or use it in a testing environment, but you're not on
a supported platform, you can try installing from static binaries.
**This is strongly discouraged in production environments.**

Static binaries for the `dockerd` (Docker daemon) binary are only available for
Linux. Static binaries for the `docker` (Docker client) binary are available for
Linux, MacOS, and Windows.
Static binaries for the Docker daemon binary are only available for Linux (as
`dockerd`) and Windows Server 2016 or Windows 10 (as `dockerd.exe`). Static
binaries for the Docker client are available for Linux and macOS (as `docker`),
and Windows Server 2016 or Windows 10 (as `docker.exe`).

## Install daemon and client binaries on Linux

Expand Down Expand Up @@ -130,11 +131,7 @@ The macOS binary includes the Docker client only. It does not include the
$ sudo cp docker/docker /usr/local/bin/
```

4. To connect the `docker` client to a remote host, either set the
`DOCKER_HOST` environment variable to the hostname or IP address of the
Docker daemon or add the `-H <hostname|IP>` option to each `docker` command.

5. Verify that Docker is installed correctly by running the `hello-world`
4. Verify that Docker is installed correctly by running the `hello-world`
image.

```bash
Expand All @@ -155,36 +152,24 @@ You can install Docker from binaries on Windows Server 2016 or Windows 10.
- To install the client only, download the 32-bit binary. The archive includes
`i386` in the file name.

1. Use the following PowerShell commands to install and start Docker:

1. Download the static binary archive. You can download either the latest
release binaries or a specific version. To find the download link, see the
[release notes](https://github.com/docker/docker/releases) for the version
of Docker you want to install.

2. Extract the archive using OS utilities. A `docker` directory is created,
and contains a `docker.exe` binary and a `dockerd.exe` binary if you
downloaded the 64-bit version.


3. **Optional**: Move the binaries to a directory on your executable path. If
you skip this step, you must provide the path to the
executable when you invoke `docker` or `dockerd` commands.
```none
Invoke-WebRequest https://get.docker.com/builds/Windows/x86_64/docker-1.13.0.zip -UseBasicParsing -OutFile docker.zip
Expand-Archive docker.zip -DestinationPath $Env:ProgramFiles
Remove-Item -Force docker.zip

4. If you downloaded the 64-bit archive, you can start the `dockerd` daemon.
dockerd --register-service

```none
C:\> dockerd
Start-Service docker
```

5. Verify that Docker is installed correctly by running the `hello-world`
2. Verify that Docker is installed correctly by running the `hello-world`
image.

> **Note**: To connect the `docker` client to a remote host, either set the
> `DOCKER_HOST` environment variable to the hostname or IP address of the
> Docker daemon or add the `-H <hostname|IP>` option to each `docker` command.

```none
C:\> docker run hello-world
docker run hello-world:nanoserver
```

This command downloads a test image and runs it in a container. When the
Expand Down
16 changes: 2 additions & 14 deletions engine/installation/linux/SUSE.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,8 +47,8 @@ You can install Docker in different ways, depending on your needs:

- Some users cannot use third-party repositories, and must rely on the version
of Docker in the OpenSUSE or SLES repositories. This version of Docker may be
out of date. Those users should consult the CentOS documentation and not
follow these procedures.
out of date. Those users should consult the OpenSuSE or SLES documentation and
not follow these procedures.

### Install using the repository

Expand Down Expand Up @@ -157,20 +157,8 @@ Docker from the repository.
S | Name | Type | Version | Arch | Repository
--+---------------+---------+---------------------------------------+--------+---------------
| docker-engine | package | 1.13.0-1 | x86_64 | docker-main
| docker-engine | package | 1.13.0-0.7.rc7 | x86_64 | docker-testing
| docker-engine | package | 1.13.0-0.6.rc6 | x86_64 | docker-testing
| docker-engine | package | 1.13.0-0.5.rc5 | x86_64 | docker-testing
| docker-engine | package | 1.13.0-0.4.rc4 | x86_64 | docker-testing
| docker-engine | package | 1.13.0-0.3.rc3 | x86_64 | docker-testing
| docker-engine | package | 1.13.0-0.2.rc2 | x86_64 | docker-testing
| docker-engine | package | 1.13.0-0.1.rc1 | x86_64 | docker-testing
| docker-engine | package | 1.12.6-1 | x86_64 | docker-main
| docker-engine | package | 1.12.5-1 | x86_64 | docker-main
| docker-engine | package | 1.12.4-1 | x86_64 | docker-main
| docker-engine | package | 1.12.3-1 | x86_64 | docker-main
| docker-engine | package | 1.12.2-1 | x86_64 | docker-main
| docker-engine | package | 1.12.1-1 | x86_64 | docker-main
| docker-engine | package | 1.12.0-1 | x86_64 | docker-main
```

The contents of the list depend upon which repositories you have enabled.
Expand Down
10 changes: 1 addition & 9 deletions engine/installation/linux/centos.md
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,7 @@ Docker from the repository.
3. On production systems, you should install a specific version of Docker
instead of always using the latest. List the available versions. This
example uses the `sort -r` command to sort the results by version number,
highest to lowest.
highest to lowest, and is truncated.

> **Note**: This `yum list` command only shows binary packages. To show
> source packages as well, omit the `.x86_64` from the package name.
Expand All @@ -117,17 +117,9 @@ Docker from the repository.
$ yum list docker-engine.x86_64 --showduplicates |sort -r

docker-engine.x86_64 1.13.0-1.el7 docker-main
docker-engine.x86_64 1.13.0-0.5.rc5.el7 docker-testing
docker-engine.x86_64 1.13.0-0.4.rc4.el7 docker-testing
docker-engine.x86_64 1.13.0-0.3.rc3.el7 docker-testing
docker-engine.x86_64 1.13.0-0.2.rc2.el7 docker-testing
docker-engine.x86_64 1.13.0-0.1.rc1.el7 docker-testing
docker-engine.x86_64 1.12.5-1.el7 docker-main
docker-engine.x86_64 1.12.4-1.el7 docker-main
docker-engine.x86_64 1.12.3-1.el7 docker-main
docker-engine.x86_64 1.12.2-1.el7 docker-main
docker-engine.x86_64 1.12.1-1.el7 docker-main
docker-engine.x86_64 1.12.0-1.el7 docker-main
```

The contents of the list depend upon which repositories are enabled, and
Expand Down
4 changes: 2 additions & 2 deletions engine/installation/linux/debian.md
Original file line number Diff line number Diff line change
Expand Up @@ -147,15 +147,15 @@ Docker from the repository.
> highest possible version, which will almost certainly be an unstable one.

3. On production systems, you should install a specific version of Docker
instead of always using the latest. List the available versions:
instead of always using the latest. This output is truncated. List the
available versions:

```bash
$ apt-cache madison docker-engine
docker-engine | 1.13.0-0~stretch | https://apt.dockerproject.org/repo debian-stretch/main amd64 Packages
docker-engine | 1.12.3-0~stretch | https://apt.dockerproject.org/repo debian-stretch/main amd64 Packages
docker-engine | 1.12.2-0~stretch | https://apt.dockerproject.org/repo debian-stretch/main amd64 Packages
docker-engine | 1.12.1-0~stretch | https://apt.dockerproject.org/repo debian-stretch/main amd64 Packages
docker-engine | 1.12.0-0~stretch | https://apt.dockerproject.org/repo debian-stretch/main amd64 Packages
```

The contents of the list depend upon which repositories are enabled,
Expand Down
10 changes: 1 addition & 9 deletions engine/installation/linux/fedora.md
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,7 @@ Docker from the repository.
3. On production systems, you should install a specific version of Docker
instead of always using the latest. List the available versions.
This example uses the `sort -r` command to sort the results by version
number, highest to lowest.
number, highest to lowest, and is truncated.

> **Note**: This `dnf list` command only shows binary packages. To show
> source packages as well, omit the `.x86_64` from the package name.
Expand All @@ -126,17 +126,9 @@ Docker from the repository.
$ dnf list docker-engine.x86_64 --showduplicates |sort -r

docker-engine.x86_64 1.13.0-1.fc24 docker-main
docker-engine.x86_64 1.13.0-0.5.rc5.fc24 docker-testing
docker-engine.x86_64 1.13.0-0.4.rc4.fc24 docker-testing
docker-engine.x86_64 1.13.0-0.3.rc3.fc24 docker-testing
docker-engine.x86_64 1.13.0-0.2.rc2.fc24 docker-testing
docker-engine.x86_64 1.13.0-0.1.rc1.fc24 docker-testing
docker-engine.x86_64 1.12.5-1.fc24 docker-main
docker-engine.x86_64 1.12.4-1.fc24 docker-main
docker-engine.x86_64 1.12.3-1.fc24 docker-main
docker-engine.x86_64 1.12.2-1.fc24 docker-main
docker-engine.x86_64 1.12.1-1.fc24 docker-main
docker-engine.x86_64 1.12.0-1.fc24 docker-main
```

The contents of the list depend upon which repositories are enabled, and
Expand Down
130 changes: 99 additions & 31 deletions engine/installation/linux/oracle.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
description: Instructions for installing Docker on Oracle Linux
keywords: Docker, Docker documentation, requirements, installation, oracle, oel, rpm, install, uninstall, upgrade, update
keywords: Docker, Docker documentation, requirements, installation, oracle, ol, rpm, install, uninstall, upgrade, update
redirect_from:
- /engine/installation/oracle/
title: Get Docker for Oracle Linux
Expand All @@ -14,9 +14,13 @@ To get started with Docker on Oracle Linux, make sure you

### OS requirements

To install Docker, you need the 64-bit version of Oracle Linux 6 or 7, running
the Unbreakable Enterprise Kernel Release 4 (4.1.12) or higher. This kernel
supports the Docker `btrfs` storage engine.
To install Docker, you need the 64-bit version of Oracle Linux 6 or 7.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It would still be great to have a link to the official Oracle Linux Docker User Guide to help guide users to the installation process for the fully supported Docker release from Oracle.


To use `btrfs`, you need to install the Unbreakable Enterprise Kernel (UEK)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is not just required for btrfs support. Oracle will only support docker-engine when running the UEK4. Technically, btrfs is supported on both the UEK and RHCK kernel variants.

Though, I guess this is somewhat of a moot point, because the rest of the documentation outlines how to install a completely unsupported version of Docker anyway.

version 4.1.12 or higher. running the Unbreakable Enterprise Kernel Release 4
(4.1.12) or higher. For Oracle Linux 6, you need to enable extra repositories
to install UEK4. See
[Obtaining and installing the UEK packages](https://docs.oracle.com/cd/E37670_01/E37355/html/ol_obtain_uek.html){: target="_blank" class="_" }.

### Remove unofficial Docker packages

Expand Down Expand Up @@ -56,15 +60,33 @@ Docker from the repository.

#### Set up the repository

1. Use the following command to set up the **stable** repository:
1. Install the `yum-utils` plugin, which provides the `yum-config-manager`
plugin.

```bash
$ sudo yum install -y yum-utils
```

2. Use one of the following commands to set up the **stable** repository,
depending on your version of Oracle Linux:

**Oracle Linux 7**:

```bash
$ sudo yum-config-manager \
--add-repo \
https://docs.docker.com/engine/installation/linux/repo_files/oracle/docker-ol7.repo
```

**Oracle Linux 6**:

```bash
$ sudo yum-config-manager \
--add-repo \
https://docs.docker.com/engine/installation/linux/repo_files/oracle/docker.repo
https://docs.docker.com/engine/installation/linux/repo_files/oracle/docker-ol6.repo
```

2. **Optional**: Enable the **testing** repository. This repository is included
3. **Optional**: Enable the **testing** repository. This repository is included
in the `docker.repo` file above but is disabled by default. You can enable
it alongside the stable repository. Do not use unstable repositories on
on production systems or for non-testing workloads.
Expand All @@ -75,16 +97,16 @@ Docker from the repository.
> which will almost certainly be an unstable one.

```bash
$ sudo yum-config-manager --set-enabled docker-testing
$ sudo yum-config-manager --enablerepo docker-testing
```

You can disable the `testing` repository by running the `yum-config-manager`
command with the `--set-disabled` flag. To re-enable it, use the
command with the `--disablerepo` flag. To re-enable it, use the
`--set-enabled` flag. The following command disables the `testing`
repository.

```bash
$ sudo yum-config-manager --set-disabled docker-testing
$ sudo yum-config-manager --disablerepo docker-testing
```

#### Install Docker
Expand All @@ -94,7 +116,27 @@ Docker from the repository.
```bash
$ sudo yum -y check-update
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This command does not update the yum package index. In order to do that, you should run yum makecache fast instead.

```
2. Install the latest version of Docker, or go to the next step to install a

2. Verify and import Docker's public key, which is used to sign packages in
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This entire step is not required because you specify the GPG key in the YUM repository configuration and you've enabled GPG checking as part of the yum install process. Therefore, the install of the GPG will automatically be triggered by YUM when the package is installed.

Thus, this step should be removed and an additional step should be added later to verify the GPG key when the yum command prompts the user to accept it.

Docker's repository.

First, verify that the fingerprint is `58118E89F3A912897C070ADBF76221572C52609D`:

```bash
$ curl -s https://yum.dockerproject.org/gpg | gpg --quiet --with-fingerprint

pub 4096R/2C52609D 2015-07-14
Key fingerprint = 5811 8E89 F3A9 1289 7C07 0ADB F762 2157 2C52 609D
uid Docker Release Tool (releasedocker) <docker@docker.com>
```

If the fingerprint matches, import the key:

```bash
$ sudo rpm --import https://yum.dockerproject.org/gpg
```

3. Install the latest version of Docker, or go to the next step to install a
specific version.

```bash
Expand All @@ -106,29 +148,21 @@ Docker from the repository.
> `yum install` or `yum upgrade` command will always install the highest
> available version, which will almost certainly be an unstable one.

3. On production systems, you should install a specific version of Docker
4. On production systems, you should install a specific version of Docker
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There is no explanation of why you should install a specific version of Docker, nor how to decide which version to install. In the absence of this decision-making guidance, the best advice should be to install the latest stable version, which is what would happen automatically if the testing repository is not enabled.

instead of always using the latest. List the available versions.
This example uses the `sort -r` command to sort the results by version
number, highest to lowest.
number, highest to lowest. The output is truncated.

> **Note**: This `yum list` command only shows binary packages. To show
> source packages as well, omit the `.x86_64` from the package name.

```bash
$ yum list docker-engine.x86_64 --showduplicates |sort -r
$ yum list docker-engine.x86_64 --showduplicates |sort -nr

docker-engine.x86_64 1.13.0-1.el7 docker-main
docker-engine.x86_64 1.13.0-0.5.rc5.el7 docker-testing
docker-engine.x86_64 1.13.0-0.4.rc4.el7 docker-testing
docker-engine.x86_64 1.13.0-0.3.rc3.el7 docker-testing
docker-engine.x86_64 1.13.0-0.2.rc2.el7 docker-testing
docker-engine.x86_64 1.13.0-0.1.rc1.el7 docker-testing
docker-engine.x86_64 1.12.5-1.el7 docker-main
docker-engine.x86_64 1.12.4-1.el7 docker-main
docker-engine.x86_64 1.12.3-1.el7 docker-main
docker-engine.x86_64 1.12.2-1.el7 docker-main
docker-engine.x86_64 1.12.1-1.el7 docker-main
docker-engine.x86_64 1.12.0-1.el7 docker-main
docker-engine.x86_64 1.13.0-1.el6 docker-main
docker-engine.x86_64 1.12.3-1.el6 docker-main
docker-engine.x86_64 1.12.2-1.el6 docker-main
docker-engine.x86_64 1.12.1-1.el6 docker-main
```

The contents of the list depend upon which repositories you have enabled,
Expand All @@ -144,9 +178,24 @@ Docker from the repository.
$ sudo yum -y install docker-engine-<VERSION_STRING>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would remove the -y option from this command-line example. It would suppress the GPG key validation check.

```

The Docker daemon starts automatically.
The Docker daemon does not start automatically.

5. Start the Docker daemon. Use `systemctl` on Oracle Linux 7 or `service` on
Oracle Linux 6.

**Oracle Linux 7**:

```bash
$ sudo systemctl start docker
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You also need to run systemctl enable docker in order for Docker to start automatically on boot.

```

4. Verify that `docker` is installed correctly by running the `hello-world`
**Oracle Linux 6**:

```bash
$ sudo service docker start
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You also need to run chkconfig docker on to enable Docker to start on boot.

```

6. Verify that `docker` is installed correctly by running the `hello-world`
image.

```bash
Expand Down Expand Up @@ -187,9 +236,24 @@ a new file each time you want to upgrade Docker.
$ sudo yum install /path/to/package.rpm
```

The Docker daemon starts automatically.
The Docker daemon does not start automatically.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Step 6 appears to be a duplication of information from step 4. Perhaps it should be split out into its own section on "Enabling and Starting the Docker daemon" which covers both install options.


4. Start the Docker daemon. Use `systemctl` on Oracle Linux 7 or `service` on
Oracle Linux 6.

3. Verify that `docker` is installed correctly by running the `hello-world`
**Oracle Linux 7**:

```bash
$ sudo systemctl start docker
```

**Oracle Linux 6**:

```bash
$ sudo service docker start
```

5. Verify that `docker` is installed correctly by running the `hello-world`
image.

```bash
Expand All @@ -210,7 +274,6 @@ To upgrade Docker, download the newer package file and repeat the
[installation procedure](#install-from-a-package), using `yum -y upgrade`
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why are you advocating the use of the -y parameter? This would prevent the user from confirming the install. It is usually only recommended when triggering yum from an automation or management system.

instead of `yum -y install`, and pointing to the new file.


## Uninstall Docker

1. Uninstall the Docker package:
Expand All @@ -227,6 +290,11 @@ instead of `yum -y install`, and pointing to the new file.
$ sudo rm -rf /var/lib/docker
```

> **Note**: This won't work when the `btrfs` graph driver has been used,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"This won't work" implies that it's somehow broken instead of addressing the fact that Docker creates btrfs subvolumes that would need to be removed first.

Rather, it should be something like "If you're using the btrfs graph driver, the Docker-created subvolumes need to be removed prior to removing the rest of the Docker content. You can review the Oracle Linux documentation to learn how to list and remove subvolumes from a btrfs volume.

> because the `rm -rf` command cannot remove the subvolumes that Docker
> creates. See the output of `man btrfs-subvolume` for information on
> removing `btrfs` subvolumes.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add something like, "Subvolumes need to be removed before the rest of the /var/lib/docker content can be erased."


You must delete any edited configuration files manually.

## Next steps
Expand Down
Loading