CentOS环境下的Docker官方推荐的三种安装方式
- yum安装方式
- 脚本安装方式
- 本地rpm安装方式
一、前提:
- Docker 要求 CentOS 系统的内核版本高于 3.10。
通过uname -r
命令查看你当前的内核版本
[root@localhost ~ ] # uname -r
3.10.0-957.el7.x86_64
Docker目前分为两个版本:
Docker CE(社区免费版)
Docker EE(企业版,强调安全,但需付费使用)
注意:我们安装的版本为社区版。Docker 官方文档也可以查看详细的安装方式
https://docs.docker.com/install/linux/docker-ce/centos/
二、yum安装(使用Docker仓库进行安装)
在新主机上首次安装 Docker Engine-Community(docker-ce) 之前,需要设置 Docker 仓库。之后就可以从仓库安装和更新 Docker。
1、在新安装的CentOS 7中,一定要先更新yum包。
$ sudo yum update
2、移除旧的版本:
如果之前安装过旧版本,在安装前一定要执行一下下面的命令。
$ sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine
如果出现下面提示,则证明没有安装过之前的旧版本。
已加载插件:fastestmirror
参数 docker 没有匹配
参数 docker-client 没有匹配
参数 docker-client-latest 没有匹配
参数 docker-common 没有匹配
参数 docker-latest 没有匹配
参数 docker-latest-logrotate 没有匹配
参数 docker-logrotate 没有匹配
参数 docker-selinux 没有匹配
参数 docker-engine-selinux 没有匹配
参数 docker-engine 没有匹配
不删除任何软件包
3、安装必须的软件包
- 安装
yum-utils
提供yum-config-manager
功能。 - 同时安装的
device-mapper-persistent-data
和lvm2
,用于devicemapper
存储设备映射器,这是必须的两个软件包。
$ sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
4、设置稳定yum源仓库来下载Docker
给yum配置一个稳定(stable)的仓库(也可以是镜像仓库)来下载docker。
官方Docker镜像源地址(不推荐)
$ sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
因为网络的原因经常下载失败:
报错:
1[Errno 14] curl#35 - TCP connection reset by peer(TCP链接被打断)
2[Errno 12] curl#35 - Timeout(链接超时)
阿里的ocker镜像源地址(推荐)
$ sudo yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
注意
仓库配置信息会保存到
/etc/yum.repos.d/docker-ce.repo
文件中。
在没有执行上边命令之前,是没有docker-ce.repo
文件的。执行完成上边命令之后,才生成的docker-ce.repo
文件。
5、更新yum软件包索引
$ sudo yum makecache fast
这个命令是将软件包信息提前在本地缓存一份,用来提高搜索安装软件的速度。
通常在更新yum源或者重新配置yum源之后,使用该命令生成缓存。
6、安装Docker-ce
(1)安装最新版本的docker-ce
直接执行:$ sudo yum -y install docker-ce
(2)安装指定版本的docker-ce
- 列出数据库中docker的可用版本
执行:$ yum list docker-ce --showduplicates | sort -r
docker-ce.x86_64 3:18.09.1-3.el7 docker-ce-stable
docker-ce.x86_64 3:18.09.0-3.el7 docker-ce-stable
docker-ce.x86_64 18.06.1.ce-3.el7 docker-ce-stable
docker-ce.x86_64 18.06.0.ce-3.el7 docker-ce-stable
- 选择指定的版本安装
执行:
$ sudo yum install docker-ce-+版本号
例如:
$ sudo yum install docker-ce-18.03.1.ce
注意:
官方文档中安装docker需要安装
docker-ce
、docker-ce-cli
、containerd.io
三个软件。我们直接安装docker-ce
就好,其他两个软件会自动匹配版本进行安装。$ sudo yum install docker-ce docker-ce-cli containerd.io $ sudo yum install docker-ce-
docker-ce-cli- containerd.io 如:$ sudo yum install docker-ce-18.03.1.ce
7、查看Docker版本信息
$ sudo docker version
8、启动Docker
$ sudo systemctl start docker
9、查看Docker状态
10、加入开机启动
$ sudo systemctl enable docker
11、通过运行 hello-world 映像来验证是否正确安装了 Docker Engine-Community 。
$ sudo docker run hello-world
出现下面显示,证明运行镜像成功
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
1b930d010525: Pull complete
Digest: sha256:d1668a9a1f5b42ed3f46b70b9cb7c88fd8bdc8a2d73509bb0041cf436018fbf5
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:
https://hub.docker.com/
For more examples and ideas, visit:
https://docs.docker.com/get-started/
12、停止Docker运行
$ sudo systemctl stop docker
至此Docker安装完成。