|
@@ -16,114 +16,151 @@ Docker runs on CentOS 7.X. An installation on other binary compatible EL7
|
|
distributions such as Scientific Linux might succeed, but Docker does not test
|
|
distributions such as Scientific Linux might succeed, but Docker does not test
|
|
or support Docker on these distributions.
|
|
or support Docker on these distributions.
|
|
|
|
|
|
-This page instructs you to install using Docker-managed release packages and
|
|
|
|
-installation mechanisms. Using these packages ensures you get the latest release
|
|
|
|
-of Docker. If you wish to install using CentOS-managed packages, consult your
|
|
|
|
-CentOS documentation.
|
|
|
|
|
|
+These instructions install Docker using release packages and installation
|
|
|
|
+mechanisms managed by Docker, to be sure that you get the latest version
|
|
|
|
+of Docker. If you wish to install using CentOS-managed packages, consult
|
|
|
|
+your CentOS release documentation.
|
|
|
|
|
|
## Prerequisites
|
|
## Prerequisites
|
|
|
|
|
|
-Docker requires a 64-bit installation regardless of your CentOS version. Also,
|
|
|
|
-your kernel must be 3.10 at minimum, which CentOS 7 runs.
|
|
|
|
|
|
+Docker requires a 64-bit OS and version 3.10 or higher of the Linux kernel.
|
|
|
|
|
|
To check your current kernel version, open a terminal and use `uname -r` to
|
|
To check your current kernel version, open a terminal and use `uname -r` to
|
|
display your kernel version:
|
|
display your kernel version:
|
|
|
|
|
|
- $ uname -r
|
|
|
|
- 3.10.0-229.el7.x86_64
|
|
|
|
|
|
+```bash
|
|
|
|
+$ uname -r
|
|
|
|
+3.10.0-229.el7.x86_64
|
|
|
|
+```
|
|
|
|
|
|
-Finally, it is recommended that you fully update your system. Please keep in
|
|
|
|
-mind that your system should be fully patched to fix any potential kernel bugs.
|
|
|
|
|
|
+Finally, it is recommended that you fully update your system. Keep in 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
|
|
Any reported kernel bugs may have already been fixed on the latest kernel
|
|
packages.
|
|
packages.
|
|
|
|
|
|
-## Install
|
|
|
|
|
|
+## Install Docker Engine
|
|
|
|
|
|
-There are two ways to install Docker Engine. You can install using the `yum`
|
|
|
|
-package manager. Or you can use `curl` with the `get.docker.com` site. This
|
|
|
|
-second method runs an installation script which also installs via the `yum`
|
|
|
|
-package manager.
|
|
|
|
|
|
+There are two ways to install Docker Engine. You can [install using the `yum`
|
|
|
|
+package manager](#install-with-yum). Or you can use `curl` with the [`get.docker.com`
|
|
|
|
+site](#install-with-the-script). This second method runs an installation script
|
|
|
|
+which also installs via the `yum` package manager.
|
|
|
|
|
|
### Install with yum
|
|
### Install with yum
|
|
|
|
|
|
1. Log into your machine as a user with `sudo` or `root` privileges.
|
|
1. Log into your machine as a user with `sudo` or `root` privileges.
|
|
|
|
|
|
-2. Make sure your existing yum packages are up-to-date.
|
|
|
|
|
|
+2. Make sure your existing packages are up-to-date.
|
|
|
|
|
|
- $ sudo yum update
|
|
|
|
|
|
+ ```bash
|
|
|
|
+ $ sudo yum update
|
|
|
|
+ ```
|
|
|
|
|
|
-3. Add the yum repo.
|
|
|
|
|
|
+3. Add the `yum` repo.
|
|
|
|
|
|
- $ sudo tee /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
|
|
|
|
|
|
+ ```bash
|
|
|
|
+ $ sudo tee /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.
|
|
4. Install the Docker package.
|
|
|
|
|
|
- $ sudo yum install docker-engine
|
|
|
|
|
|
+ ```bash
|
|
|
|
+ $ sudo yum install docker-engine
|
|
|
|
+ ```
|
|
|
|
|
|
-5. Start the Docker daemon.
|
|
|
|
|
|
+5. Enable the service.
|
|
|
|
|
|
- $ sudo service docker start
|
|
|
|
|
|
+ ```bash
|
|
|
|
+ $ sudo systemctl enable docker.service
|
|
|
|
+ ```
|
|
|
|
|
|
-6. Verify `docker` is installed correctly by running a test image in a container.
|
|
|
|
|
|
+6. Start the Docker daemon.
|
|
|
|
+
|
|
|
|
+ ```bash
|
|
|
|
+ $ sudo systemctl start docker
|
|
|
|
+ ```
|
|
|
|
+
|
|
|
|
+7. Verify `docker` is installed correctly by running a test image in a container.
|
|
|
|
+
|
|
|
|
+ $ sudo docker run --rm hello-world
|
|
|
|
|
|
- $ sudo docker run hello-world
|
|
|
|
Unable to find image 'hello-world:latest' locally
|
|
Unable to find image 'hello-world:latest' locally
|
|
- latest: Pulling from hello-world
|
|
|
|
- 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: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.
|
|
|
|
-
|
|
|
|
- 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.
|
|
|
|
- (Assuming it was not already locally available.)
|
|
|
|
- 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
|
|
|
|
-
|
|
|
|
- For more examples and ideas, visit:
|
|
|
|
- http://docs.docker.com/userguide/
|
|
|
|
|
|
+ latest: Pulling from library/hello-world
|
|
|
|
+ c04b14da8d14: Pull complete
|
|
|
|
+ Digest: sha256:0256e8a36e2070f7bf2d0b0763dbabdd67798512411de4cdcf9431a1feb60fd9
|
|
|
|
+ Status: Downloaded newer image for hello-world:latest
|
|
|
|
|
|
-### Install with the script
|
|
|
|
|
|
+ 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/engine/userguide/
|
|
|
|
+
|
|
|
|
+If you need to add an HTTP Proxy, set a different directory or partition for the
|
|
|
|
+Docker runtime files, or make other customizations, read our Systemd article to
|
|
|
|
+learn how to [customize your Systemd Docker daemon options](../../admin/systemd.md).
|
|
|
|
+
|
|
|
|
+### Install with the script
|
|
|
|
|
|
1. Log into your machine as a user with `sudo` or `root` privileges.
|
|
1. Log into your machine as a user with `sudo` or `root` privileges.
|
|
|
|
|
|
-2. Make sure your existing yum packages are up-to-date.
|
|
|
|
|
|
+2. Make sure your existing packages are up-to-date.
|
|
|
|
|
|
- $ sudo yum update
|
|
|
|
|
|
+ ```bash
|
|
|
|
+ $ sudo yum update
|
|
|
|
+ ```
|
|
|
|
|
|
3. Run the Docker installation script.
|
|
3. Run the Docker installation script.
|
|
|
|
|
|
- $ curl -fsSL https://get.docker.com/ | sh
|
|
|
|
|
|
+ ```bash
|
|
|
|
+ $ curl -fsSL https://get.docker.com/ | sh
|
|
|
|
+ ```
|
|
|
|
|
|
- This script adds the `docker.repo` repository and installs Docker.
|
|
|
|
|
|
+ This script adds the `docker.repo` repository and installs Docker.
|
|
|
|
|
|
-4. Start the Docker daemon.
|
|
|
|
|
|
+4. Enable the service.
|
|
|
|
|
|
- $ sudo service docker start
|
|
|
|
|
|
+ ```bash
|
|
|
|
+ $ sudo systemctl enable docker.service
|
|
|
|
+ ```
|
|
|
|
|
|
-5. Verify `docker` is installed correctly by running a test image in a container.
|
|
|
|
|
|
+5. Start the Docker daemon.
|
|
|
|
+
|
|
|
|
+ ```bash
|
|
|
|
+ $ sudo systemctl start docker
|
|
|
|
+ ```
|
|
|
|
+
|
|
|
|
+6. Verify `docker` is installed correctly by running a test image in a container.
|
|
|
|
|
|
- $ sudo docker run hello-world
|
|
|
|
|
|
+ ```bash
|
|
|
|
+ $ sudo docker run hello-world
|
|
|
|
+ ```
|
|
|
|
|
|
|
|
+If you need to add an HTTP Proxy, set a different directory or partition for the
|
|
|
|
+Docker runtime files, or make other customizations, read our Systemd article to
|
|
|
|
+learn how to [customize your Systemd Docker daemon options](../../admin/systemd.md).
|
|
|
|
|
|
-## Create a docker group
|
|
|
|
|
|
+## Create a docker group
|
|
|
|
|
|
The `docker` daemon binds to a Unix socket instead of a TCP port. By default
|
|
The `docker` daemon binds to a Unix socket instead of a TCP port. By default
|
|
that Unix socket is owned by the user `root` and other users can access it with
|
|
that Unix socket is owned by the user `root` and other users can access it with
|
|
@@ -139,54 +176,63 @@ makes the ownership of the Unix socket read/writable by the `docker` group.
|
|
|
|
|
|
To create the `docker` group and add your user:
|
|
To create the `docker` group and add your user:
|
|
|
|
|
|
-1. Log into Centos as a user with `sudo` privileges.
|
|
|
|
|
|
+1. Log into your machine as a user with `sudo` or `root` privileges.
|
|
|
|
|
|
2. Create the `docker` group.
|
|
2. Create the `docker` group.
|
|
|
|
|
|
- `sudo groupadd docker`
|
|
|
|
|
|
+ ```bash
|
|
|
|
+ $ sudo groupadd docker
|
|
|
|
+ ```
|
|
|
|
|
|
3. Add your user to `docker` group.
|
|
3. Add your user to `docker` group.
|
|
|
|
|
|
- `sudo usermod -aG docker your_username`
|
|
|
|
|
|
+ ```bash
|
|
|
|
+ $ sudo usermod -aG docker your_username`
|
|
|
|
+ ```
|
|
|
|
|
|
4. Log out and log back in.
|
|
4. Log out and log back in.
|
|
|
|
|
|
This ensures your user is running with the correct permissions.
|
|
This ensures your user is running with the correct permissions.
|
|
|
|
|
|
-5. Verify your work by running `docker` without `sudo`.
|
|
|
|
|
|
+5. Verify that your user is in the docker group by running `docker` without `sudo`.
|
|
|
|
|
|
- $ docker run hello-world
|
|
|
|
|
|
+ ```bash
|
|
|
|
+ $ docker run hello-world
|
|
|
|
+ ```
|
|
|
|
|
|
## Start the docker daemon at boot
|
|
## Start the docker daemon at boot
|
|
|
|
|
|
-To ensure Docker starts when you boot your system, do the following:
|
|
|
|
-
|
|
|
|
- $ sudo chkconfig docker on
|
|
|
|
-
|
|
|
|
-If you need to add an HTTP Proxy, set a different directory or partition for the
|
|
|
|
-Docker runtime files, or make other customizations, read our Systemd article to
|
|
|
|
-learn how to [customize your Systemd Docker daemon options](../../admin/systemd.md).
|
|
|
|
|
|
+Configure the Docker daemon to start automatically when the host starts:
|
|
|
|
|
|
|
|
+```bash
|
|
|
|
+$ sudo systemctl enable docker
|
|
|
|
+```
|
|
|
|
|
|
## Uninstall
|
|
## Uninstall
|
|
|
|
|
|
-You can uninstall the Docker software with `yum`.
|
|
|
|
|
|
+You can uninstall the Docker software with `yum`.
|
|
|
|
+
|
|
|
|
+1. List the installed Docker packages.
|
|
|
|
|
|
-1. List the package you have installed.
|
|
|
|
|
|
+ ```bash
|
|
|
|
+ $ yum list installed | grep docker
|
|
|
|
|
|
- $ yum list installed | grep docker
|
|
|
|
- yum list installed | grep docker
|
|
|
|
- docker-engine.x86_64 1.7.1-1.el7 @/docker-engine-1.7.1-1.el7.x86_64.rpm
|
|
|
|
|
|
+ docker-engine.x86_64 1.7.1-0.1.el7@/docker-engine-1.7.1-0.1.el7.x86_64
|
|
|
|
+ ```
|
|
|
|
|
|
2. Remove the package.
|
|
2. Remove the package.
|
|
|
|
|
|
- $ sudo yum -y remove docker-engine.x86_64
|
|
|
|
|
|
+ ```bash
|
|
|
|
+ $ sudo yum -y remove docker-engine.x86_64
|
|
|
|
+ ```
|
|
|
|
|
|
This command does not remove images, containers, volumes, or user-created
|
|
This command does not remove images, containers, volumes, or user-created
|
|
configuration files on your host.
|
|
configuration files on your host.
|
|
|
|
|
|
3. To delete all images, containers, and volumes, run the following command:
|
|
3. To delete all images, containers, and volumes, run the following command:
|
|
|
|
|
|
- $ rm -rf /var/lib/docker
|
|
|
|
|
|
+ ```bash
|
|
|
|
+ $ rm -rf /var/lib/docker
|
|
|
|
+ ```
|
|
|
|
|
|
4. Locate and delete any user-created configuration files.
|
|
4. Locate and delete any user-created configuration files.
|