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

Rewrite and reorganize Linux install instructions #1159

Merged
merged 1 commit into from
Jan 19, 2017
Merged

Rewrite and reorganize Linux install instructions #1159

merged 1 commit into from
Jan 19, 2017

Conversation

mdlinville
Copy link

Proposed changes

  • Rewrote installation instructions for Ubuntu, Debian, RHEL, CentOS, Fedora, Oracle

  • Added instructions for installing from packages without using the repositories

  • Moved lots of non-dist-specific post-installation instructions to a new file

  • Added docker.repo files which can be imported by RHEL, CentOS, Fedora, Oracle users (the URLs to these will not work until this PR is merged)

  • Added steps for importing and verifying the GPG signing key on all the dists where it is relevant

  • Reorganized content in the left-hand nav to emphasize the most popular and well-tested distros

These instructions have already undergone exhaustive review and testing.

Unreleased project version (optional)

Engine 1.13

Related issues and PRs

Fixes #703
Goes some way to eventually fixing #1026

Signed-off-by: Misty Stanley-Jones <misty@docker.com>
@mdlinville
Copy link
Author

Here we goooo...

@Djelibeybi
Copy link
Contributor

Djelibeybi commented Jan 19, 2017

I have a serious objection to this rewrite because it will result in increased support calls. All of the distro-specific support information has been removed. This needs to be restored so that Oracle (and RHEL and SUSE) customers don't think they can install upstream binaries while continuing to receive distro support for Docker.

There are also inaccuracies in the Oracle text as it incorrectly refers to Red Hat.

I do appreciate the simplification, though.

@mdlinville
Copy link
Author

I'll fix the Oracle text relating to Red Hat. Sorry I merged this without seeing your comment. As far as the other one, I'm really not sure what to do about this. Docker has no insight into distro-specific support arrangements with customers. We do call out that not everyone can use third-party binaries right at the top of each of these topics.

@Djelibeybi
Copy link
Contributor

Djelibeybi commented Jan 19, 2017

Except all the distro-specific content was in the original text. You're removing a whole bunch of content without really articulating the benefit.

In many cases, you're actually advocating removing the supported distro version in order to install the unsupported upstream version without even mentioning this action may cause a loss of support.

description: Installation instructions for Docker on Oracle Linux.
keywords: Docker, Docker documentation, requirements, linux, rhel, centos, oracle, ol
description: Instructions for installing Docker on Oracle Linux
keywords: Docker, Docker documentation, requirements, installation, oracle, oel, rpm, install, uninstall, upgrade, update
Copy link
Contributor

Choose a reason for hiding this comment

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

Please remove the oel keyword and add ol.

Copy link
Author

Choose a reason for hiding this comment

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

Done in #1172.

- Some users download the RPM package and install it manually and manage
upgrades completely manually.

- Some users cannot use third-party repositories, and must rely on
Copy link
Contributor

Choose a reason for hiding this comment

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

This needs to be updated to refer to the Oracle repositories. Also, it is not clear enough that this is the preferred option for customers who wish to retain Oracle support for the docker-engine package. It needs to be clearer that this is the only supported install option by Oracle.

- Most users
[set up the official Docker repositories](#install-using-the-repository) and
install from them, for ease of installation and upgrade tasks. This is the
recommended approach.
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 only the recommended approach by Docker. It is not the recommended approach by the vendor who may be providing support. It needs to be clearer that this is only recommended for customers who do not have an existing support subscription with Oracle.


- Some users cannot use third-party repositories, and must rely on
the version of Docker in the Red Hat repositories. This version of Docker may
be out of date. Those users should consult the Red Hat documentation and not
Copy link
Contributor

Choose a reason for hiding this comment

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

A link to the Oracle documentation that outlines the installation and upgrade procedures should be included. It was included in the previous version of the Docker documentation.


2. Create the `docker` group.
3. 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.

You do not explain how to determine which specific version of Docker should be installed. How is the end-user supposed to determine which version of Docker to install here? Also, why shouldn't the user use the latest version of Docker? That's not explained either. Not using the latest version could leave the user vulnerable to security flaws.

Copy link
Author

Choose a reason for hiding this comment

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

This is just saying not to always update to the latest just because it's there, but to be mindful when upgrading. This is not about which repo the bits come from. Sorry for the confusion.


5. Verify your work by running `docker` without `sudo`.
The Docker daemon starts automatically.
Copy link
Contributor

Choose a reason for hiding this comment

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

This may have changed in Docker 1.13, but up to 1.12, the daemon is not started automatically in the standard RPM. You need to use systemctl to both enable and start the Docker daemon (on OL7) or the service and chkconfig commands to start the daemon on OL6.

Copy link
Author

Choose a reason for hiding this comment

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

You're right, I verified this behavior and updated the contents in #1172.

On Oracle Linux 7, you can use a `systemd.mount` definition and modify the
Docker `systemd.service` to depend on the btrfs mount defined in systemd.
```bash
$ sudo rm -rf /var/lib/docker
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 when the btrfs graph driver has been used, as the rm -rf command cannot remove the subvolumes that Docker creates.

Copy link
Author

Choose a reason for hiding this comment

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

Thanks, I've added info about this in #1172.

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
Copy link
Contributor

Choose a reason for hiding this comment

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

dockerd.exe is also available for windows server and windows 10 (same thing).


https://get.docker.com/builds/Darwin/x86_64/docker-1.11.0.tgz
## Install server and binaries on Windows
Copy link
Contributor

Choose a reason for hiding this comment

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

Here are the instructions in a nutshell:

nvoke-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

dockerd --register-service

Start-Service docker

Copy link
Author

Choose a reason for hiding this comment

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

Done.


- To install both client and server binaries, download the 64-bit binary. The
archive includes `x86.64` in the file name.
Copy link
Contributor

Choose a reason for hiding this comment

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

it's x86_64 and it's in the path, not the filename (that goes for the client below too)

Copy link
Author

Choose a reason for hiding this comment

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

Done.


To download a specific version for Windows, use the following URL pattern:
3. **Optional**: Move the binaries to a directory on your executable path. If
Copy link
Contributor

Choose a reason for hiding this comment

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

this doesn't make sense. Instead we should tell people to change their path to include where docker is

Copy link
Author

Choose a reason for hiding this comment

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

Removed in #1172.


https://get.docker.com/builds/Windows/i386/docker-1.11.0.zip
> **Note**: To connect the `docker` client to a remote host, either set the
Copy link
Contributor

Choose a reason for hiding this comment

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

I don't think this is necessary - we've just taken reader through local install, they're unlikely to need this

Copy link
Author

Choose a reason for hiding this comment

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

Removed in #1172.

> The *docker* group (or the group specified with `-G`) is root-equivalent;
> see [*Docker Daemon Attack Surface*](../security/security.md#docker-daemon-attack-surface) details.
```none
C:\> docker run hello-world
Copy link
Contributor

Choose a reason for hiding this comment

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

C:\code\tmp> docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
C:\Program Files\Docker\Docker\Resources\bin\docker.exe: image operating system "linux" cannot be used on this platform.
See 'C:\Program Files\Docker\Docker\Resources\bin\docker.exe run --help'.

The correct thing is hello-world:nanoserver

Copy link
Author

Choose a reason for hiding this comment

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

Thanks! Added to #1172.


- 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
Copy link
Contributor

Choose a reason for hiding this comment

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

"centos"

Copy link
Author

Choose a reason for hiding this comment

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

Fixed in #1172.

$ sudo zypper install docker-engine
```

> **Warning**: If you have both stable and unstable repositories enabled,
Copy link
Contributor

Choose a reason for hiding this comment

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

This warning is duplicated, no?

Copy link
Author

Choose a reason for hiding this comment

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

Yes once while setting up the repos and once when actually installing. It's pretty important.


## openSUSE
S | Name | Type | Version | Arch | Repository
Copy link
Contributor

Choose a reason for hiding this comment

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

@mstanleyjones as previously suggested, can we abbreviate these listings and just show a couple of rows with elipsis? I don't think there's value in listing out everything that happened to be in there when this was written.

This applies to other distros too.

Copy link
Author

Choose a reason for hiding this comment

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

Done.

```

This script adds the `docker.repo` repository and installs Docker.
> **Warning**: If you have both stable and unstable repositories enabled,
Copy link
Contributor

Choose a reason for hiding this comment

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

@mstanleyjones why are we duplicating this warning?

Copy link
Author

Choose a reason for hiding this comment

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

Once during enabling the repos, once when actually making the decision about what version to install.

@Djelibeybi
Copy link
Contributor

I apologise if my previous tone was too abrupt or rude. I realise I am probably missing some larger context or motivation behind such large changes to the documentation.

If you could, would you mind explaining the rationale behind these changes so we can better review them for the target audience?

@mdlinville
Copy link
Author

Thanks for all the feedback. Please move any more feedback to #1172.

@friism
Copy link
Contributor

friism commented Jan 19, 2017

@Djelibeybi it's all good - thanks for the review and your constructive comments, it's really helpful. I also want to apologize if this seems rushed - we're crunching for a release.

Ultimately, we want these docs to be short and to the point, and we want to help people install the official Docker packages that are built, supported and maintained by Docker.

Further, while I'm sure that the docker-engine packages that Oracle maintains are great (and I commend Oracle for having up-to-date releases), from our standpoint they suffer from the same shortcomings that you identify with Docker's docker-engine packages: Oracle's packages are not supported by Docker. And similar to what we're trying to achieve with our docs, the Oracle docs don't mention the risks inherent in using Oracle's docker package, nor do they point users to Docker's packages for a Docker-supported solution.

Again, thanks for your help reviewing the docs and please keep the feedback coming.

@Djelibeybi
Copy link
Contributor

@friism I think a generic note is probably sufficient then, across the board. Something like, "These instructions install the official Docker build which may not be supported by your distribution vendor. Support for this build is available from Docker, please see..." and a link to the Docker support subscription page or product page or whatever.

Essentially just to make it a little clearer to anyone who installs this particular build that support is available, but from Docker themselves.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants