Merge pull request #14638 from jfrazelle/new-repo-install-script

update install script/docs for new apt and yum repos
This commit is contained in:
Jessie Frazelle 2015-07-22 15:25:27 -07:00
commit f218192754
8 changed files with 236 additions and 188 deletions

View file

@ -51,10 +51,10 @@ The Docker installation configuration is equivalent to running:
```
apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys\
36A1D7869245C8950F966E92D8576A8BA88D21E9
sh -c "echo deb https://get.docker.com/ubuntu docker main\
sh -c "echo deb https://apt.dockerproject.org/repo ubuntu-trusty main\
> /etc/apt/sources.list.d/docker.list"
apt-get update
apt-get install lxc-docker
apt-get install docker-engine
```
Ensure that your current working directory is set to the `DockerClientDSC`

View file

@ -41,51 +41,28 @@ packages.
## Install
You use the same installation procedure for all versions of CentOS,
only the package you install differs. There are two packages to choose from:
There are two ways to install Docker Engine. You can use `curl` with the `get.docker.com` site. This method runs an installation script which installs via the `yum` package manager. Or you can install with the `yum` package manager directly yourself.
<table>
<tr>
<th>Version</th>
<th>Package name</th>
</tr>
<tr>
<td>7.X</td>
<td>
<p>
<a href="https://get.docker.com/rpm/1.7.1/centos-7/RPMS/x86_64/docker-engine-1.7.1-1.el7.centos.x86_64.rpm">
https://get.docker.com/rpm/1.7.1/centos-7/RPMS/x86_64/docker-engine-1.7.1-1.el7.centos.x86_64.rpm</a>
</p>
<p>
<a href="https://get.docker.com/rpm/1.7.1/centos-7/SRPMS/docker-engine-1.7.1-1.el7.centos.src.rpm">
https://get.docker.com/rpm/1.7.1/centos-7/SRPMS/docker-engine-1.7.1-1.el7.centos.src.rpm</a>
</p>
</td>
</tr>
</table>
### Install with the script
Installation procedure:
1. Log into your machine as a user with `sudo` or `root` privileges.
2. Make sure your existing packages are up-to-date.
2. Make sure your existing yum packages are up-to-date.
$ sudo yum update
3. Download the Docker RPM to the current directory.
3. Run the Docker installation script.
$ curl -O -sSL https://get.docker.com/rpm/1.7.1/centos-7/RPMS/x86_64/docker-engine-1.7.1-1.el7.x86_64.rpm
$ curl -sSL https://get.docker.com/ | sh
This script adds the `docker.repo` repository and installs Docker.
4. Use `yum` to install the package.
$ sudo yum localinstall --nogpgcheck docker-engine-1.7.1-1.el7.x86_64.rpm
5. Start the Docker daemon.
4. Start the Docker daemon.
$ sudo service docker start
6. Verify `docker` is installed correctly by running a test image in a container.
5. Verify `docker` is installed correctly by running a test image in a container.
$ sudo docker run hello-world
Unable to find image 'hello-world:latest' locally
@ -112,6 +89,39 @@ Installation procedure:
For more examples and ideas, visit:
http://docs.docker.com/userguide/
### Install without the script
1. Log into your machine as a user with `sudo` or `root` privileges.
2. Make sure your existing yum packages are up-to-date.
$ sudo yum update
3. Add the yum repo yourself.
For CentOS 7 run:
$ cat >/etc/yum.repos.d/docker.repo <<-EOF
[dockerrepo]
name=Docker Repository
baseurl=https://yum.dockerproject.org/repo/main/centos/7
enabled=1
gpgcheck=1
gpgkey=https://yum.dockerproject.org/gpg
EOF
4. Install the Docker package.
$ sudo yum install docker-engine
5. Start the Docker daemon.
$ sudo service docker start
6. Verify `docker` is installed correctly by running a test image in a container.
$ sudo docker run hello-world
## Create a docker group

View file

@ -102,11 +102,11 @@ which is officially supported by Docker.
To uninstall the Docker package:
$ sudo apt-get purge lxc-docker
$ sudo apt-get purge docker-engine
To uninstall the Docker package and dependencies that are no longer needed:
$ sudo apt-get autoremove --purge lxc-docker
$ sudo apt-get autoremove --purge docker-engine
The above commands will not remove images, containers, volumes, or user created
configuration files on your host. If you wish to delete all images, containers,

View file

@ -38,85 +38,28 @@ reported kernel bugs may have already been fixed on the latest kernel packages
## Install
You use the same installation procedure for all versions of Fedora,
only the package you install differs. Choose from these packages:
There are two ways to install Docker Engine. You can use `curl` with the `get.docker.com` site. This method runs an installation script which installs via the `yum` package manager. Or you can install with the `yum` package manager directly yourself.
<style type="text/css">
.tg {border-collapse:collapse;border-spacing:0;}
td{font-family:Arial, sans-serif;font-size:14px;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;vertical-align: top;}
th{font-family:Arial, sans-serif;font-size:14px;font-weight:normal;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;vertical-align: top;}
</style>
<table class="tg">
<tr>
<th>Version</th>
<th>Package name</th>
</tr>
<tr>
<td>Fedora 20</td>
<td>
<p>
<a href="https://get.docker.com/rpm/1.7.1/fedora-20/RPMS/x86_64/docker-engine-1.7.1-1.fc20.x86_64.rpm">
docker-engine-1.7.1-1.fc20.x86_64.rpm</a>
</p>
<p>
<a href="https://get.docker.com/rpm/1.7.1/fedora-20/SRPMS/docker-engine-1.7.1-1.fc20.src.rpm">
docker-engine-1.7.1-1.fc20.src.rpm</a>
</p>
</td>
</tr>
<tr>
<td>Fedora 21</td>
<td>
<p>
<a href="https://get.docker.com/rpm/1.7.1/fedora-21/RPMS/x86_64/docker-engine-1.7.1-1.fc21.x86_64.rpm">
docker-engine-1.7.1-1.fc21.x86_64.rpm</a>
</p>
<p>
<a href="https://get.docker.com/rpm/1.7.1/fedora-21/SRPMS/docker-engine-1.7.1-1.fc21.src.rpm">
docker-engine-1.7.1-1.fc21.src.rpm</a>
</p>
</td>
</tr>
<tr>
<td>Fedora 22</td>
<td>
<p>
<a href="https://get.docker.com/rpm/1.7.1/fedora-22/RPMS/x86_64/docker-engine-1.7.1-1.fc22.x86_64.rpm">
docker-engine-1.7.1-1.fc22.x86_64.rpm</a>
</p>
<p>
<a href="https://get.docker.com/rpm/1.7.1/fedora-22/SRPMS/docker-engine-1.7.1-1.fc22.src.rpm">
docker-engine-1.7.1-1.fc22.src.rpm</a>
</p>
</td>
</tr>
</table>
### Install with the script
This procedure depicts an installation on version 21. If you are installing on
20 or 22, substitute that package for your installation.
1. Log into your machine as a user with `sudo` or `root` privileges.
2. Make sure you don't have an older version of Docker installed.
2. Make sure your existing yum packages are up-to-date.
$ yum list installed | grep docker
If you have an older version, remove it using the `yum -y remove <packagename>` command.
3. Download the Docker RPM to the current directory.
$ sudo yum update
$ curl -O -sSL https://url_to_package/docker-engine-1.7.1-0.1.fc21.x86_64.rpm
3. Run the Docker installation script.
$ curl -sSL https://get.docker.com/ | sh
This script adds the `docker.repo` repository and installs Docker.
4. Use `yum` to install the package.
$ sudo yum localinstall --nogpgcheck docker-engine-1.7.1-0.1.fc21.x86_64.rpm
5. Start the Docker daemon.
4. Start the Docker daemon.
$ sudo service docker start
6. Verify `docker` is installed correctly by running a test image in a container.
5. Verify `docker` is installed correctly by running a test image in a container.
$ sudo docker run hello-world
Unable to find image 'hello-world:latest' locally
@ -124,7 +67,7 @@ This procedure depicts an installation on version 21. If you are installing on
a8219747be10: Pull complete
91c95931e552: Already exists
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:aa03e5d0d5553b4c3473e89c8619cf79df368babd18681cf5daeb82aab55838d
Digest: sha256:aa03e5d0d5553b4c3473e89c8619cf79df368babd1.7.1cf5daeb82aab55838d
Status: Downloaded newer image for hello-world:latest
Hello from Docker.
This message shows that your installation appears to be working correctly.
@ -143,6 +86,61 @@ This procedure depicts an installation on version 21. If you are installing on
For more examples and ideas, visit:
http://docs.docker.com/userguide/
### Install without the script
1. Log into your machine as a user with `sudo` or `root` privileges.
2. Make sure your existing yum packages are up-to-date.
$ sudo yum update
3. Add the yum repo yourself.
For Fedora 20 run:
$ cat >/etc/yum.repos.d/docker.repo <<-EOF
[dockerrepo]
name=Docker Repository
baseurl=https://yum.dockerproject.org/repo/main/fedora/20
enabled=1
gpgcheck=1
gpgkey=https://yum.dockerproject.org/gpg
EOF
For Fedora 21 run:
$ cat >/etc/yum.repos.d/docker.repo <<-EOF
[dockerrepo]
name=Docker Repository
baseurl=https://yum.dockerproject.org/repo/main/fedora/21
enabled=1
gpgcheck=1
gpgkey=https://yum.dockerproject.org/gpg
EOF
For Fedora 22 run:
$ cat >/etc/yum.repos.d/docker.repo <<-EOF
[dockerrepo]
name=Docker Repository
baseurl=https://yum.dockerproject.org/repo/main/fedora/22
enabled=1
gpgcheck=1
gpgkey=https://yum.dockerproject.org/gpg
EOF
4. Install the Docker package.
$ sudo yum install docker-engine
5. Start the Docker daemon.
$ sudo service docker start
6. Verify `docker` is installed correctly by running a test image in a container.
$ sudo docker run hello-world
## Create a docker group

View file

@ -35,48 +35,29 @@ mind that your system should be fully patched to fix any potential kernel bugs.
Any reported kernel bugs may have already been fixed on the latest kernel
packages.
## Install
## Install Docker Engine
You use the same installation procedure for all versions of Red Hat Enterprise,
only the package you install differs. There are two packages to choose from:
There are two ways to install Docker Engine. You can use `curl` with the `get.docker.com` site. This method runs an installation script which installs via the `yum` package manager. Or you can install with the `yum` package manager directly yourself.
<table>
<tr>
<th>Version</th>
<th>Package name</th>
</tr>
<tr>
<td>7.X</td>
<td>
<p>
<a href="https://get.docker.com/rpm/1.7.1/centos-7/RPMS/x86_64/docker-engine-1.7.1-1.el7.centos.x86_64.rpm">
https://get.docker.com/rpm/1.7.1/centos-7/RPMS/x86_64/docker-engine-1.7.1-1.el7.centos.x86_64.rpm</a>
</p>
<p>
<a href="https://get.docker.com/rpm/1.7.1/centos-7/SRPMS/docker-engine-1.7.1-1.el7.centos.src.rpm">
https://get.docker.com/rpm/1.7.1/centos-7/SRPMS/docker-engine-1.7.1-1.el7.centos.src.rpm</a>
</p>
</td>
</tr>
</table>
### Install with the script
Installation procedure:
You use the same installation procedure for all versions of CentOS.
1. Log into your machine as a user with `sudo` or `root` privileges.
2. Download the Docker RPM to the current directory.
2. Make sure your existing yum packages are up-to-date.
$ sudo yum update
$ curl -O -sSL https://get.docker.com/rpm/1.7.1/centos-7/RPMS/x86_64/docker-engine-1.7.1-1.el7.x86_64.rpm
3. Run the Docker installation script.
$ curl -sSL https://get.docker.com/ | sh
3. Use `yum` to install the package.
$ sudo yum localinstall --nogpgcheck docker-engine-1.7.1-1.el7.x86_64.rpm
5. Start the Docker daemon.
4. Start the Docker daemon.
$ sudo service docker start
6. Verify `docker` is installed correctly.
5. Verify `docker` is installed correctly by running a test image in a container.
$ sudo docker run hello-world
Unable to find image 'hello-world:latest' locally
@ -84,7 +65,7 @@ Installation procedure:
a8219747be10: Pull complete
91c95931e552: Already exists
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:aa03e5d0d5553b4c3473e89c8619cf79df368babd18681cf5daeb82aab55838d
Digest: sha256:aa03e5d0d5553b4c3473e89c8619cf79df368babd1.7.1cf5daeb82aab55838d
Status: Downloaded newer image for hello-world:latest
Hello from Docker.
This message shows that your installation appears to be working correctly.
@ -103,6 +84,39 @@ Installation procedure:
For more examples and ideas, visit:
http://docs.docker.com/userguide/
### Install without the script
1. Log into your machine as a user with `sudo` or `root` privileges.
2. Make sure your existing yum packages are up-to-date.
$ sudo yum update
3. Add the yum repo yourself.
For RHEL 7 run:
$ cat >/etc/yum.repos.d/docker.repo <<-EOF
[dockerrepo]
name=Docker Repository
baseurl=https://yum.dockerproject.org/repo/main/centos/7
enabled=1
gpgcheck=1
gpgkey=https://yum.dockerproject.org/gpg
EOF
4. Install the Docker package.
$ sudo yum install docker-engine
5. Start the Docker daemon.
$ sudo service docker start
6. Verify `docker` is installed correctly by running a test image in a container.
$ sudo docker run hello-world
## Create a docker group

View file

@ -347,11 +347,11 @@ To install the latest version of Docker with `wget`:
To uninstall the Docker package:
$ sudo apt-get purge lxc-docker
$ sudo apt-get purge docker-engine
To uninstall the Docker package and dependencies that are no longer needed:
$ sudo apt-get autoremove --purge lxc-docker
$ sudo apt-get autoremove --purge docker-engine
The above commands will not remove images, containers, volumes, or user created
configuration files on your host. If you wish to delete all images, containers,

View file

@ -6,7 +6,12 @@ set -e
# or:
# 'wget -qO- https://get.docker.com/ | sh'
#
# If you're interested in the daily experimental build:
# For test builds (ie. release candidates):
# 'curl -sSL https://test.docker.com/ | sh'
# or:
# 'wget -qO- https://test.docker.com/ | sh'
#
# For experimental builds:
# 'curl -sSL https://experimental.docker.com/ | sh'
# or:
# 'wget -qO- https://experimental.docker.com/ | sh'
@ -25,6 +30,12 @@ command_exists() {
}
echo_docker_as_nonroot() {
if command_exists docker && [ -e /var/run/docker.sock ]; then
(
set -x
$sh_c 'docker version'
) || true
fi
your_user=your-user
[ "$user" != 'root' ] && your_user="$user"
# intentionally mixed spaces and tabs here -- tabs are stripped by "<<-EOF", spaces are kept in the output
@ -95,47 +106,60 @@ do_install() {
curl='busybox wget -qO-'
fi
# check to see which repo they are trying to install from
repo='main'
if [ "https://test.docker.com/" = "$url" ]; then
repo='testing'
elif [ "https://experimental.docker.com/" = "$url" ]; then
repo='experimental'
fi
# perform some very rudimentary platform detection
lsb_dist=''
dist_version=''
if command_exists lsb_release; then
lsb_dist="$(lsb_release -si)"
dist_version="$(lsb_release --codename | cut -f2)"
fi
if [ -z "$lsb_dist" ] && [ -r /etc/lsb-release ]; then
lsb_dist="$(. /etc/lsb-release && echo "$DISTRIB_ID")"
dist_version="$(. /etc/lsb-release && echo "$DISTRIB_CODENAME")"
fi
if [ -z "$lsb_dist" ] && [ -r /etc/debian_version ]; then
lsb_dist='debian'
dist_version="$(cat /etc/debian_version | sed 's/\/.*//' | sed 's/\..*//')"
case "$dist_version" in
8)
dist_version="jessie"
;;
7)
dist_version="wheezy"
;;
esac
fi
if [ -z "$lsb_dist" ] && [ -r /etc/fedora-release ]; then
lsb_dist='fedora'
dist_version="$(rpm -qa \*-release | cut -d"-" -f3)"
fi
if [ -z "$lsb_dist" ] && [ -r /etc/centos-release ]; then
lsb_dist='centos'
if [ -z "$lsb_dist" ]; then
if [ -r /etc/centos-release ] || [ -r /etc/redhat-release ]; then
lsb_dist='centos'
dist_version="$(rpm -qa \*-release | cut -d"-" -f3)"
fi
fi
if [ -z "$lsb_dist" ] && [ -r /etc/os-release ]; then
lsb_dist="$(. /etc/os-release && echo "$ID")"
dist_version="$(. /etc/os-release && echo "$VERSION_ID")"
fi
lsb_dist="$(echo "$lsb_dist" | tr '[:upper:]' '[:lower:]')"
case "$lsb_dist" in
amzn|fedora|centos)
if [ "$lsb_dist" = 'amzn' ]; then
(
set -x
$sh_c 'sleep 3; yum -y -q install docker'
)
else
(
set -x
$sh_c 'sleep 3; yum -y -q install docker-io'
)
fi
if command_exists docker && [ -e /var/run/docker.sock ]; then
(
set -x
$sh_c 'docker version'
) || true
fi
amzn)
(
set -x
$sh_c 'sleep 3; yum -y -q install docker'
)
echo_docker_as_nonroot
exit 0
;;
@ -145,17 +169,11 @@ do_install() {
set -x
$sh_c 'sleep 3; zypper -n install docker'
)
if command_exists docker && [ -e /var/run/docker.sock ]; then
(
set -x
$sh_c 'docker version'
) || true
fi
echo_docker_as_nonroot
exit 0
;;
ubuntu|debian|linuxmint|'elementary os'|kali)
ubuntu|debian)
export DEBIAN_FRONTEND=noninteractive
did_apt_get_update=
@ -209,30 +227,39 @@ do_install() {
curl='curl -sSL'
fi
(
set -x
if [ "https://get.docker.com/" = "$url" ]; then
$sh_c "apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9"
elif [ "https://test.docker.com/" = "$url" ]; then
$sh_c "apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 740B314AE3941731B942C66ADF4FD13717AAD7D6"
elif [ "https://experimental.docker.com/" = "$url" ]; then
$sh_c "apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys E33FF7BF5C91D50A6F91FFFD4CC38D40F9A96B49"
else
$sh_c "$curl ${url}gpg | apt-key add -"
fi
$sh_c "mkdir -p /etc/apt/sources.list.d"
$sh_c "echo deb ${url}ubuntu docker main > /etc/apt/sources.list.d/docker.list"
$sh_c 'sleep 3; apt-get update; apt-get install -y -q lxc-docker'
set -x
$sh_c "apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D"
$sh_c "mkdir -p /etc/apt/sources.list.d"
$sh_c "echo deb https://apt.dockerproject.org/repo ${lsb_dist}-${dist_version} ${repo} > /etc/apt/sources.list.d/docker.list"
$sh_c 'sleep 3; apt-get update; apt-get install -y -q docker-engine'
)
if command_exists docker && [ -e /var/run/docker.sock ]; then
(
set -x
$sh_c 'docker version'
) || true
fi
echo_docker_as_nonroot
exit 0
;;
fedora|centos)
cat >/etc/yum.repos.d/docker-${repo}.repo <<-EOF
[docker-${repo}-repo]
name=Docker ${repo} Repository
baseurl=https://yum.dockerproject.org/repo/${repo}/${lsb_dist}/${dist_version}
enabled=1
gpgcheck=1
gpgkey=https://yum.dockerproject.org/gpg
EOF
if [ "$lsb_dist" = "fedora" ] && [ "$dist_version" -ge "22" ]; then
(
set -x
$sh_c 'sleep 3; dnf -y -q install docker-engine'
)
else
(
set -x
$sh_c 'sleep 3; yum -y -q install docker-engine'
)
fi
echo_docker_as_nonroot
exit 0
;;
gentoo)
if [ "$url" = "https://test.docker.com/" ]; then
# intentionally mixed spaces and tabs here -- tabs are stripped by "<<-'EOF'", spaces are kept in the output

View file

@ -25,8 +25,7 @@ for, so feel free to reach out to him even just to say "Hi!"
## Package Name
If possible, your package should be called "docker". If that name is already
taken, a second choice is "lxc-docker", but with the caveat that "LXC" is now an
optional dependency (as noted below). Another possible choice is "docker.io".
taken, a second choice is "docker-engine". Another possible choice is "docker.io".
## Official Build vs Distro Build