• 【服务器安装系列】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. #使用 aliyun yum 源
    4. $ wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
    5. #清理缓存
    6. $ yum clean all
    7. #更新 yum
    8. $ yum -y update

    BASH

    2、清理之前 Docker 版本

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

    检测是否存在 Docker 相关包

    1. $ rpm -qa|grep docker

    BASH

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

    1. yum 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

    BASH

    三、配置镜像源

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

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

    BASH

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

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

    BASH

    四、安装 Docker

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

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

    BASH

    安装指定docker版本

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

    BASH

    五、设置 Docker 存储位置

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

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

    BASH

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

    1. ...
    2. ExecStart=/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. $ cat > /etc/docker/daemon.json << EOF
    5. {
    6. "registry-mirrors": [
    7. "http://hub-mirror.c.163.com",
    8. "https://registry.docker-cn.com"
    9. ],
    10. "log-driver": "json-file",
    11. "log-opts": {
    12. "max-size": "100m",
    13. "max-file":"5"
    14. }
    15. }
    16. EOF

    BASH

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

    启动 Docker:

    $ systemctl start docker && systemctl enable docker
    

    BASH

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

    $ systemctl daemon-reload && systemctl restart docker
    

    BASH

    八、验证是否安装成功

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

    # docker run hello-world
    

    BASH

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

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

    BASH

    九、安装 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. $ chmod +x /usr/local/bin/docker-compose

    BASH

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

    $ docker-compose version
    

    BASH

    十、安装中遇到的问题

    • 问题:
    Cannot retrieve metalink for repository: epel. Please verify its path and try again
    

    BASH

    • 解决办法:

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

    $ vi /etc/yum.repos.d/epel.repo
    

    BASH

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

    BASH

    修改为:

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

    BASH

    再清理源,重新安装

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

    BASH

    --END--

  • 相关阅读:
    manifold.ext.rt manifold @Extension
    Node.js精进(11)——Socket.IO
    web前端面经
    PostgreSQL技巧之ShareLock死锁处理
    安装Go语言开发工具
    MySQL Workbench 使用MySQL语法“创建表格以及插入数据”
    串的基本操作(数据结构)
    Spring Webflux HttpHandler源码整理
    让写代码燃起来!vscode插件Power Mode
    爬虫工具-推广-推广链接
  • 原文地址:https://blog.csdn.net/wufaqidong1/article/details/126164564