CentOS7 安装及配置 Docker

CentOS7 安装及配置 Docker

文章目录

  !版权声明:本博客内容均为原创,每篇博文作为知识积累,写博不易,转载请注明出处。


一、Docker 简介

       Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux 或 Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

二、安装前检查环境

1、升级内核版本

Docker 要求 CentOS 系统的内核版本高于等于 3.10,所以我们确保能顺利安装,这里更新下内核版本。

 1#备份 yum 源
 2$ mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo_bak 
 3
 4#使用 aliyun yum 源
 5$ wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
 6
 7#清理缓存
 8$ yum clean all
 9
10#更新 yum
11$ yum -y update

2、清理之前 Docker 版本

检测是否存在 Docker 相关包,如果存在则删除,否则可能造成冲突。

检测是否存在 Docker 相关包

1$ rpm -qa|grep docker

如果有存在的 Docker 相关包就执行下面命令进行删除:

 1yum remove docker \
 2          docker-client \
 3          docker-client-latest \
 4          docker-common \
 5          docker-latest \
 6          docker-latest-logrotate \
 7          docker-logrotate \
 8          docker-selinux \
 9          docker-engine-selinux \
10          docker-ce-cli \
11          docker-engine

三、配置镜像源

安装 yum 工具,方便下一步配置 yum 源:

1$ yum install -y yum-utils device-mapper-persistent-data lvm2

这里使用 Aliyun Docker yum 源文件进行安装 Docker,输入下面命令进行源配置:

1$ yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

四、安装 Docker

显示docker-ce所有可安装版本:

 1$ yum list docker-ce --showduplicates | sort -r
 2
 3Installed Packages
 4 * extras: mirrors.aliyun.com
 5 * epel: mirrors.yun-idc.com
 6docker-ce.x86_64            3:18.09.6-3.el7                    docker-ce-stable 
 7docker-ce.x86_64            3:18.09.5-3.el7                    docker-ce-stable 
 8docker-ce.x86_64            3:18.09.4-3.el7                    docker-ce-stable 
 9docker-ce.x86_64            3:18.09.3-3.el7                    docker-ce-stable 
10docker-ce.x86_64            3:18.09.2-3.el7                    docker-ce-stable 
11docker-ce.x86_64            3:18.09.1-3.el7                    docker-ce-stable 
12docker-ce.x86_64            3:18.09.0-3.el7                    docker-ce-stable 
13docker-ce.x86_64            18.06.3.ce-3.el7                   docker-ce-stable 
14docker-ce.x86_64            18.06.2.ce-3.el7                   docker-ce-stable 
15docker-ce.x86_64            18.06.1.ce-3.el7                   docker-ce-stable 
16docker-ce.x86_64            18.06.0.ce-3.el7                   docker-ce-stable 

安装指定docker版本

1$ yum install docker-ce-18.06.3.ce-3.el7 -y

五、设置 Docker 存储位置

Docker 默认存储位置为"/var/lib/docker",但是有时候这个目录下存储空间小需要修改到一个大的存储目录,例如这里设置一个就可以修改 Docker 配置文件 docker.service 进行下面操作

1$ vi /lib/systemd/system/docker.service

找到 ExecStartExecStart=/usr/bin/docker 这行,在后台添加 "--graph /xxx",例如这里目录为 /apps/docker 则可以按如下配置:

1...
2ExecStart=/usr/bin/docker --graph /apps/docker
3...

六、配置 Docker 参数

Docker 默认从 "https://hub.docker.com/" 下载镜像,由于网络原因经常超时或者下载速度慢,在国内一般需要给 Docker 设置镜像加速器来加快共有镜像的下载速度,这里创建一个 Docker 配置文件,配置一个下载代理加速地址。当然,除了配置加速器外还要配置日志相关配置,避免日志过多,占满磁盘。

Docker Deamon 文件还可以配置很多参数,具体可以看其官方文档:Daemon configuration file

 1#创建Docker配置文件夹
 2$ mkdir -p /etc/docker
 3
 4#添加加速器配置文件
 5$ cat > /etc/docker/daemon.json << EOF
 6{
 7  "registry-mirrors": [
 8      "http://hub-mirror.c.163.com",
 9      "https://registry.docker-cn.com"
10  ],
11  "log-driver": "json-file",
12  "log-opts": {
13    "max-size": "100m",
14    "max-file":"5"
15  }
16}
17EOF

七、启动 Docker 并设置开机启动

启动 Docker:

1$ systemctl start docker && systemctl enable docker

如果 Docker 已经启动,则需要重启 Docker:

1$ systemctl daemon-reload && systemctl restart docker

八、验证是否安装成功

拉取一个 hello-world 镜像来确认docker可用,执行以下命令:

1# docker run hello-world

如果出现以下信息,则代表 docker 可用:

 1Unable to find image 'hello-world:latest' locally
 2latest: Pulling from library/hello-world
 3d1725b59e92d: Pull complete 
 4Digest: sha256:0add3ace90ecb4adbf7777e9aacf18357296e799f81cabc9fde470971e499788
 5Status: Downloaded newer image for hello-world:latest
 6
 7Hello from Docker!
 8This message shows that your installation appears to be working correctly.
 9
10To generate this message, Docker took the following steps:
11 1. The Docker client contacted the Docker daemon.
12 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
13    (amd64)
14 3. The Docker daemon created a new container from that image which runs the
15    executable that produces the output you are currently reading.
16 4. The Docker daemon streamed that output to the Docker client, which sent it
17    to your terminal.
18
19To try something more ambitious, you can run an Ubuntu container with:
20 $ docker run -it ubuntu bash
21
22Share images, automate workflows, and more with a free Docker ID:
23 https://hub.docker.com/
24
25For more examples and ideas, visit:
26 https://docs.docker.com/get-started/

九、安装 Docker-Compose

Docker-Compose 是用于定义和运行多容器 Docker 应用程序的工具,通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务。由于在实际使用 Docker 过程中我们会经常使用该组件,所以这里我们也顺便进行一下安装,操作如下:

1## 下载 docker-compose
2$ curl -L https://github.com/docker/compose/releases/download/1.27.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose 
3
4## 配置文件的执行权限
5$ chmod +x /usr/local/bin/docker-compose

安装完成后我们执行下面命令,查看是否能够正常执行:

1$ docker-compose version

十、安装中遇到的问题

  • 问题:
1Cannot retrieve metalink for repository: epel. Please verify its path and try again
  • 解决办法:

打开/etc/yum.repos.d/epel.repo

1$ vi /etc/yum.repos.d/epel.repo
1[epel]
2name=Extra Packages for Enterprise Linux 7 - $basearch
3#baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch
4metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=$basearch

修改为:

1[epel]
2name=Extra Packages for Enterprise Linux 7 - $basearch
3baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch
4#metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=$basearch

再清理源,重新安装

1#清理缓存
2$ yum clean all
3
4#重新安装包
5$ yum install -y 包名

--END--


  !版权声明:本博客内容均为原创,每篇博文作为知识积累,写博不易,转载请注明出处。