2014-05-23 09:53:11 -04:00
|
|
|
page_title: Installation on CentOS
|
2014-05-27 09:59:30 -04:00
|
|
|
page_description: Instructions for installing Docker on CentOS
|
2014-05-23 09:53:11 -04:00
|
|
|
page_keywords: Docker, Docker documentation, requirements, linux, centos, epel, docker.io, docker-io
|
|
|
|
|
2014-05-21 17:05:19 -04:00
|
|
|
# CentOS
|
2014-05-23 09:53:11 -04:00
|
|
|
|
2015-02-04 22:42:11 -05:00
|
|
|
Docker is supported on the following versions of CentOS:
|
2014-08-17 10:14:05 -04:00
|
|
|
|
2015-02-04 22:42:11 -05:00
|
|
|
- [*CentOS 7 (64-bit)*](#installing-docker---centos-7)
|
|
|
|
- [*CentOS 6.5 (64-bit)*](#installing-docker---centos-6.5) or later
|
|
|
|
|
|
|
|
These instructions are likely work for other binary compatible EL6/EL7 distributions
|
|
|
|
such as Scientific Linux, but they haven't been tested.
|
2014-05-23 09:53:11 -04:00
|
|
|
|
2014-08-13 10:53:48 -04:00
|
|
|
Please note that due to the current Docker limitations, Docker is able to
|
2014-05-23 09:53:11 -04:00
|
|
|
run only on the **64 bit** architecture.
|
|
|
|
|
2015-02-04 22:42:11 -05:00
|
|
|
## Kernel support
|
|
|
|
|
|
|
|
Currently the CentOS project will only support Docker when running on kernels
|
|
|
|
shipped by the distribution. There are kernel changes which will cause issues
|
|
|
|
if one decides to step outside that box and run non-distribution kernel packages.
|
|
|
|
|
|
|
|
To run Docker on [CentOS-6.5](http://www.centos.org) or later, you will need
|
|
|
|
kernel version 2.6.32-431 or higher as this has specific kernel fixes to allow
|
|
|
|
Docker to run.
|
2014-05-23 09:53:11 -04:00
|
|
|
|
2014-08-13 10:53:48 -04:00
|
|
|
## Installing Docker - CentOS-7
|
|
|
|
Docker is included by default in the CentOS-Extras repository. To install
|
2015-02-04 22:42:11 -05:00
|
|
|
run the following command:
|
2014-08-13 10:53:48 -04:00
|
|
|
|
|
|
|
$ sudo yum install docker
|
|
|
|
|
2015-02-04 22:42:11 -05:00
|
|
|
Please continue with the [Starting the Docker daemon](#starting-the-docker-daemon).
|
2014-08-17 10:14:05 -04:00
|
|
|
|
|
|
|
### FirewallD
|
|
|
|
|
|
|
|
CentOS-7 introduced firewalld, which is a wrapper around iptables and can
|
|
|
|
conflict with Docker.
|
|
|
|
|
2014-11-25 23:09:52 -05:00
|
|
|
When `firewalld` is started or restarted it will remove the `DOCKER` chain
|
2014-08-17 10:14:05 -04:00
|
|
|
from iptables, preventing Docker from working properly.
|
|
|
|
|
2015-02-04 22:42:11 -05:00
|
|
|
When using Systemd, `firewalld` is started before Docker, but if you
|
2014-11-25 23:09:52 -05:00
|
|
|
start or restart `firewalld` after Docker, you will have to restart the Docker daemon.
|
2014-08-17 10:14:05 -04:00
|
|
|
|
2015-02-04 22:42:11 -05:00
|
|
|
## Installing Docker - CentOS-6.5
|
|
|
|
|
|
|
|
For Centos-6.5, the Docker package is part of [Extra Packages
|
|
|
|
for Enterprise Linux (EPEL)](https://fedoraproject.org/wiki/EPEL) repository,
|
|
|
|
a community effort to create and maintain additional packages for the RHEL distribution.
|
2014-05-23 09:53:11 -04:00
|
|
|
|
2014-05-21 17:05:19 -04:00
|
|
|
Firstly, you need to ensure you have the EPEL repository enabled. Please
|
2014-05-23 09:53:11 -04:00
|
|
|
follow the [EPEL installation instructions](
|
|
|
|
https://fedoraproject.org/wiki/EPEL#How_can_I_use_these_extra_packages.3F).
|
|
|
|
|
2015-02-04 22:42:11 -05:00
|
|
|
For CentOS-6, there is a package name conflict with a system tray application
|
|
|
|
and its executable, so the Docker RPM package was called `docker-io`.
|
2014-05-23 09:53:11 -04:00
|
|
|
|
2015-02-04 22:42:11 -05:00
|
|
|
To proceed with `docker-io` installation on CentOS-6, you may need to remove the
|
|
|
|
`docker` package first.
|
2014-05-23 09:53:11 -04:00
|
|
|
|
2015-02-04 22:42:11 -05:00
|
|
|
$ sudo yum -y remove docker
|
|
|
|
|
|
|
|
Next, let's install the `docker-io` package which will install Docker on our host.
|
2014-05-23 09:53:11 -04:00
|
|
|
|
2014-05-24 09:33:41 -04:00
|
|
|
$ sudo yum install docker-io
|
2014-05-23 09:53:11 -04:00
|
|
|
|
2015-02-04 22:42:11 -05:00
|
|
|
Please continue with the [Starting the Docker daemon](#starting-the-docker-daemon).
|
|
|
|
|
|
|
|
## Manual installation of latest Docker release
|
|
|
|
|
|
|
|
While using a package is the recommended way of installing Docker,
|
|
|
|
the above package might not be the current release version. If you need the latest
|
|
|
|
version, [you can install the binary directly](
|
|
|
|
https://docs.docker.com/installation/binaries/).
|
|
|
|
|
|
|
|
When installing the binary without a package, you may want
|
|
|
|
to integrate Docker with Systemd. For this, install the two unit files
|
|
|
|
(service and socket) from [the GitHub
|
|
|
|
repository](https://github.com/docker/docker/tree/master/contrib/init/systemd)
|
|
|
|
to `/etc/systemd/system`.
|
|
|
|
|
|
|
|
Please continue with the [Starting the Docker daemon](#starting-the-docker-daemon).
|
|
|
|
|
|
|
|
## Starting the Docker daemon
|
2014-08-13 10:53:48 -04:00
|
|
|
|
|
|
|
Once Docker is installed, you will need to start the docker daemon.
|
2014-05-23 09:53:11 -04:00
|
|
|
|
2014-05-24 09:33:41 -04:00
|
|
|
$ sudo service docker start
|
2014-05-23 09:53:11 -04:00
|
|
|
|
|
|
|
If we want Docker to start at boot, we should also:
|
|
|
|
|
2014-05-24 09:33:41 -04:00
|
|
|
$ sudo chkconfig docker on
|
2014-05-23 09:53:11 -04:00
|
|
|
|
|
|
|
Now let's verify that Docker is working. First we'll need to get the latest
|
2014-05-21 17:05:19 -04:00
|
|
|
`centos` image.
|
2014-05-23 09:53:11 -04:00
|
|
|
|
2014-08-13 10:53:48 -04:00
|
|
|
$ sudo docker pull centos
|
2014-05-23 09:53:11 -04:00
|
|
|
|
|
|
|
Next we'll make sure that we can see the image by running:
|
|
|
|
|
2014-05-24 09:33:41 -04:00
|
|
|
$ sudo docker images centos
|
2014-05-23 09:53:11 -04:00
|
|
|
|
|
|
|
This should generate some output similar to:
|
|
|
|
|
2014-05-24 09:33:41 -04:00
|
|
|
$ sudo docker images centos
|
2014-05-23 09:53:11 -04:00
|
|
|
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
|
|
|
|
centos latest 0b443ba03958 2 hours ago 297.6 MB
|
|
|
|
|
2014-05-21 17:05:19 -04:00
|
|
|
Run a simple bash shell to test the image:
|
2014-05-24 09:33:41 -04:00
|
|
|
|
|
|
|
$ sudo docker run -i -t centos /bin/bash
|
2014-05-23 09:53:11 -04:00
|
|
|
|
2014-05-21 17:05:19 -04:00
|
|
|
If everything is working properly, you'll get a simple bash prompt. Type
|
2014-11-25 23:09:52 -05:00
|
|
|
`exit` to continue.
|
|
|
|
|
|
|
|
## Custom daemon options
|
|
|
|
|
|
|
|
If you need to add an HTTP Proxy, set a different directory or partition for the
|
2015-02-04 22:42:11 -05:00
|
|
|
Docker runtime files, or make other customizations, read our Systemd article to
|
|
|
|
learn how to [customize your Systemd Docker daemon options](/articles/systemd/).
|
2014-05-23 09:53:11 -04:00
|
|
|
|
2014-08-13 10:53:48 -04:00
|
|
|
## Dockerfiles
|
|
|
|
The CentOS Project provides a number of sample Dockerfiles which you may use
|
|
|
|
either as templates or to familiarize yourself with docker. These templates
|
2015-02-04 22:42:11 -05:00
|
|
|
are available on GitHub at [https://github.com/CentOS/CentOS-Dockerfiles](
|
2014-08-13 10:53:48 -04:00
|
|
|
https://github.com/CentOS/CentOS-Dockerfiles)
|
|
|
|
|
2014-05-21 17:05:19 -04:00
|
|
|
**Done!** You can either continue with the [Docker User
|
|
|
|
Guide](/userguide/) or explore and build on the images yourself.
|
2014-05-23 09:53:11 -04:00
|
|
|
|
|
|
|
## Issues?
|
|
|
|
|
|
|
|
If you have any issues - please report them directly in the
|
2014-05-27 09:59:30 -04:00
|
|
|
[CentOS bug tracker](http://bugs.centos.org).
|