Docker支持运行在以下CentOS版本:
CentOS 7.X
安装在二进制兼容的EL7版本如 Scientific Linux也是可能成功的,但是Docker
没有测试过并且不官方支持。
此文带你通过使用Docker管理的发行包和安装机制来安装。使用这些报能确保你使用最新的Docker版本。
如果你希望使用CentOS管理的包,请阅读你的CentOS文档。
要求
不过你的系统版本是多少,Docker都要求64位。并且当CentOS7时你的内核必须不小于3.10。
检查当前内核版本:
uname -r
3.10.0-229.el7.x86_64
建议将系统升级到最新。
安装
有两种方式可安装Docker Engine。脚本安装和yum安装。
脚本安装
1.使用root权限登陆系统。
2.更新系统包到最新。
# yum -y update
3.执行Docker安装脚本
# curl -sSL https://get.docker.com/ | sh
# yum install -y docker-selinux
这个脚本会添加docker.repo 配置并安装Docker。
4.启动Docker
# systemctl start docker.service
5.验证docker已经正常安装
# docker run hello-world
yum安装
1.使用root权限登陆系统。
2.更新系统包到最新。
# yum -y update
3.添加yum仓库
# 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.安装Docker包
# yum install -y docker-engine yum install -y docker-selinux
yum list installed | grep docker docker-engine.x86_64 1.8.1-1.el7.centos @dockerrepo docker-selinux.x86_64 1.7.1-108.el7.centos @extras
这里有个非常坑的情况,官方文档没有提到docker-selinux的安装,笔者在使用VirtualBox,配置一个桥接,一个Host-Only的网卡时,只安装docker-engine启动会报错,需要在安装docker-selinux方可。
可以看github上的两个issues,1.8.0: Systemd can’t start docker on Centos 7.1 #15498,Docker start times out if firewalld is started #13019。
5.启动Docker
# systemctl start docker.service
6.验证docker已经正常安装
# docker run hello-world
Unable to find image ‘hello-world:latest’ locally
latest: Pulling from library/hello-world
535020c3e8ad: Pull complete
af340544ed62: Already exists
library/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:d5fbd996e6562438f7ea5389d7da867fe58e04d581810e230df4cc073271ea52
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. 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/userguide/