2020-10-26 06:47:10 +00:00
# # Install Docker CE on CentOS
2014-09-05 07:49:58 +00:00
2020-10-26 06:47:10 +00:00
> WARNING : DO NOT install Docker with yum directly without configuring yum source .
2018-03-19 08:04:23 +00:00
2020-10-26 06:47:10 +00:00
# # # Prerequisites
2017-09-04 15:34:38 +00:00
2020-10-26 06:47:10 +00:00
# # # # OS Requirement
Docker CE supports 64 - bit version of CentOS 7 , and it requires the kernel version to be no older than 3.10 . CentOS 7 satisfies the minimum kernel version requirement . But due to the comparatively old kernel , some of the functionalities like ` overlay2 ` are unable to be used , and some other features may be unstable .
2014-09-11 14:52:28 +00:00
2020-10-26 06:47:10 +00:00
# # # # Uninstall the Old Versions
2014-09-20 13:50:27 +00:00
2020-10-26 06:47:10 +00:00
The old versions of Docker are called ` docker ` or ` docker-engine ` , you can have them uninstalled with the following command :
2016-11-09 21:55:43 +00:00
2016-11-10 11:48:32 +00:00
` ` ` bash
2017-09-04 03:17:39 +00:00
$ sudo yum remove docker \
2018-03-08 00:23:35 +00:00
docker - client \
docker - client - latest \
docker - common \
docker - latest \
docker - latest - logrotate \
docker - logrotate \
docker - selinux \
docker - engine - selinux \
docker - engine
2016-11-09 21:55:43 +00:00
` ` `
2020-10-26 06:47:10 +00:00
# # # Install with yum
2016-11-09 21:55:43 +00:00
2020-10-26 06:47:10 +00:00
Use the following commands to install the dependencies :
2017-09-04 03:17:39 +00:00
` ` ` bash
2017-10-19 14:41:37 +00:00
$ sudo yum install - y yum - utils \
device - mapper - persistent - data \
lvm2
2017-09-04 03:17:39 +00:00
` ` `
2020-10-26 06:47:10 +00:00
Due to the network issues in China mainland , it is highly recommended for Chinese users to use Chinese sources . Please refer to the official sources in the comments ( they are replaced by a Chinese source ) .
2016-02-04 07:08:44 +00:00
2020-10-26 06:47:10 +00:00
Use the following command to add ` dnf ` source .
2016-11-10 11:48:32 +00:00
` ` ` bash
2017-09-04 03:17:39 +00:00
$ sudo yum - config - manager \
-- add - repo \
2017-10-19 14:46:23 +00:00
https : //mirrors.ustc.edu.cn/docker-ce/linux/centos/docker-ce.repo
2016-02-04 07:08:44 +00:00
2017-09-04 15:34:38 +00:00
2020-10-26 06:47:10 +00:00
# Official source
2017-12-08 16:12:02 +00:00
# $ sudo yum - config - manager \
# -- add - repo \
2019-02-21 02:53:33 +00:00
# https : //download.docker.com/linux/centos/docker-ce.repo
2017-09-04 03:17:39 +00:00
` ` `
2020-10-26 06:47:10 +00:00
If you want to use the ` test ` version of Docker CE , use the following command :
2017-09-04 03:17:39 +00:00
` ` ` bash
2018-07-20 01:31:19 +00:00
$ sudo yum - config - manager -- enable docker - ce - test
2017-09-04 03:17:39 +00:00
` ` `
2016-11-09 21:55:43 +00:00
2020-10-26 06:47:10 +00:00
As for ` nightly ` version :
2017-12-08 16:12:02 +00:00
2016-11-10 11:48:32 +00:00
` ` ` bash
2018-07-20 01:31:19 +00:00
$ sudo yum - config - manager -- enable docker - ce - nightly
2016-11-09 21:55:43 +00:00
` ` `
2020-10-26 06:47:10 +00:00
# # # # Install Docker CE
2017-09-04 03:17:39 +00:00
2020-10-26 06:47:10 +00:00
Update ` yum ` source cache , and then install ` docker-ce ` .
2017-09-04 03:17:39 +00:00
` ` ` bash
$ sudo yum makecache fast
$ sudo yum install docker - ce
` ` `
2020-10-26 06:47:10 +00:00
# # # Install with Automatic Scripts
2017-09-04 03:17:39 +00:00
2020-10-26 07:03:45 +00:00
To simplify the installation process during test or development , Docker official provides a convenient installation script , you can install docker on CentOS with the following script :
2017-09-04 03:17:39 +00:00
` ` ` bash
$ curl - fsSL get . docker . com - o get - docker . sh
$ sudo sh get - docker . sh -- mirror Aliyun
` ` `
2020-10-26 06:47:10 +00:00
After execution , the script will have everything prepared , and have installed the stable version on your OS .
2017-09-04 03:17:39 +00:00
2020-10-26 06:47:10 +00:00
# # # Start Docker CE
2016-11-09 21:55:43 +00:00
2016-11-10 11:48:32 +00:00
` ` ` bash
2016-11-09 21:55:43 +00:00
$ sudo systemctl enable docker
$ sudo systemctl start docker
2014-09-11 14:52:28 +00:00
` ` `
2020-10-26 06:47:10 +00:00
# # # Add Docker Usergroups
2016-11-09 21:55:43 +00:00
2020-10-26 06:47:10 +00:00
Command ` docker ` uses [ Unix socket ] ( https : //en.wikipedia.org/wiki/Unix_domain_socket) to communicate with Docker engine by default. Only users of `root` and `docker` groups can communicate with Unix socket of the Docker engine.`root` user is not directly used on Linux systems in general for security. Therefore, it is better to add users who need to use `docker` to the `docker` user group.
2016-02-04 07:08:44 +00:00
2020-10-26 06:47:10 +00:00
create ` docker ` group :
2016-02-04 07:08:44 +00:00
2016-11-10 11:48:32 +00:00
` ` ` bash
2016-11-09 21:55:43 +00:00
$ sudo groupadd docker
2014-09-05 07:49:58 +00:00
` ` `
2016-02-04 07:08:44 +00:00
2020-10-26 06:47:10 +00:00
add current user to ` docker ` group :
2016-11-09 21:55:43 +00:00
2016-11-10 11:48:32 +00:00
` ` ` bash
2016-11-09 21:55:43 +00:00
$ sudo usermod - aG docker $ USER
2014-09-12 07:37:21 +00:00
` ` `
2016-11-09 21:55:43 +00:00
2020-10-26 06:47:10 +00:00
Exit current terminal and relogin to test .
2017-12-10 05:21:52 +00:00
2020-10-26 06:47:10 +00:00
# # # Verify the Installation
2017-11-24 01:51:06 +00:00
` ` ` bash
$ docker run hello - world
Unable to find image ' hello - world : latest ' locally
latest : Pulling from library / hello - world
2018-10-21 01:51:36 +00:00
d1725b59e92d : Pull complete
Digest : sha256 : 0 add3ace90ecb4adbf7777e9aacf18357296e799f81cabc9fde470971e499788
2017-11-24 01:51:06 +00:00
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 .
( amd64 )
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 ID :
2018-10-21 01:51:36 +00:00
https : //hub.docker.com/
2017-11-24 01:51:06 +00:00
For more examples and ideas , visit :
2018-10-21 01:51:36 +00:00
https : //docs.docker.com/get-started/
2017-11-24 01:51:06 +00:00
` ` `
2020-10-26 06:47:10 +00:00
If it shows the above message , it means your installation is successful .
2017-11-24 01:51:06 +00:00
2020-10-26 06:47:10 +00:00
# # # Registry Mirror ( In China )
2017-09-04 03:17:39 +00:00
2020-10-26 06:47:10 +00:00
If you pull docker images very slowly , then you can configure [ Registry Mirror ] ( mirror . md ) .
2017-09-04 03:17:39 +00:00
2020-10-26 06:47:10 +00:00
# # # Add kernel Parameters
2017-09-04 15:34:38 +00:00
2020-10-26 06:47:10 +00:00
If you see the following warnings when using Docker CE ,
2017-09-04 15:34:38 +00:00
` ` ` bash
WARNING : bridge - nf - call - iptables is disabled
WARNING : bridge - nf - call - ip6tables is disabled
` ` `
2020-10-26 06:47:10 +00:00
Please add the kernel parameters to enable these features .
2017-09-04 15:34:38 +00:00
` ` ` bash
$ sudo tee - a / etc / sysctl . conf << - EOF
net . bridge . bridge - nf - call - ip6tables = 1
net . bridge . bridge - nf - call - iptables = 1
EOF
` ` `
2020-10-26 06:47:10 +00:00
Then reload the ` sysctl.confg `
2017-09-04 15:34:38 +00:00
` ` ` bash
$ sudo sysctl - p
` ` `
2020-10-26 06:47:10 +00:00
# # # References
2016-11-09 21:55:43 +00:00
2020-10-26 06:47:10 +00:00
* [ Docker Official Installation Documents for Fedora ] ( https : //docs.docker.com/install/linux/docker-ce/centos/)