更新于2019.12.17

本文内容

  • Linux在线/离线安装Docker-CE (开源版本)

鉴于公司一般使用Centos 7 作为服务器,本文只记录Centos 7系统安装Docker部分,更多详见官方文档

前提条件

1.系统、内核

CentOS7 要求64位系统、内核版本3.10以上

CentOS6 要求版本在6.5以上,系统64位、内核版本2.6.32-431以上

查看内核版本号

uname -r #查看内核版本
cat /etc/os-release #查看系统信息

2.开启centos-extras资源库

使用Centos 7,开启centos-extras资源库

centos-extras这个yum资源库默认是开启的,如果禁用了,请打开

推荐使用Overlay2作为存储驱动

卸载旧版本Docker容器

$ sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine

删除旧版本Docker文件

sudo rm /var/lib/docker/ -rf

Centos 7在线安装Docker-CE

本节适用于可访问网络的情况

设置yum仓库

安装必要依赖包

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

添加阿里镜像稳定版仓库

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

添加阿里源时有时会报错,如果报错,使用如下命令使用官方源

#删除异常源
sudo rm -f /etc/yum.repos.d/docker-ce.repo
#使用官方源
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

更新yum缓存

sudo yum makecache fast

安装Docker-CE

注意事项:本步骤分两部分,仅需按需求使用其一

1 安装最新版

sudo yum install -y docker-ce docker-ce-cli containerd.io

2 安装指定版本

列出可用版本

$ 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

安装指定版本

<VERSION_STRING>需要替换为第二列的版本号,如:18.06.0.ce-3.el7

$ sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io

启动Docker服务

sudo systemctl start docker

Centos 7离线安装Docker-CE

本节仅适用于无外网环境下

下载RPM包

访问官方网站提供的下载rpm包地址

https://download.docker.com/linux/centos/7/x86_64/stable/Packages/

官方提供的离线包主要需要下载

  • containerd.io-<VERSION_STRING>.x86_64.rpm
  • docker-ce-<VERSION_STRING>.x86_64.rpm
  • docker-ce-cli-<VERSION_STRING>.x86_64.rpm

注意事项:

  • 在保证大版本相同下,docker-cedocker-ce-cli 版本要尽量相同

  • 不要使用betarc

  • 版本号带.centos与不带基本没什么区别

注:未提到的docker-ce-selinux安装包在新版本中已经被废弃了,需要下载另外的一个依赖包container-selinux

container-selinux安装包下载地址:https://pkgs.org/download/container-selinux

安装RPM包

官方方式

使用rpm按顺序安装依赖包 或 sudo yum /path/to/package.rpm,以下为举例

$ sudo rpm -ivh containerd.io-1.2.5-3.1.el7.x86_64.rpm
$ sudo rpm -ivh docker-ce-cli-18.09.6-3.el7.x86_64.rpm
$ sudo rpm -ivh container-selinux-2.95-2.el7_6.noarch.rpm
$ sudo rpm -ivh docker-ce-18.09.6-3.el7.x86_64.rpm

以上均安装完成即可,以下是解决问题的思路

离线安装解决问题这部分参考 https://blog.csdn.net/GentleLin/article/details/90294324

官方安装方式可能出现的问题

1、在安装以上rpm包的时候,如果出现缺少依赖的错误,比如:

error: Failed dependencies:
policycoreutils >= 2.5-11 is needed by container-selinux-2:2.95-2.el7_6.noarch
selinux-policy >= 3.13.1-216.el7 is needed by container-selinux-2:2.95-2.el7_6.noarch
selinux-policy-base >= 3.13.1-216.el7 is needed by container-selinux-2:2.95-2.el7_6.noarch
selinux-policy-targeted >= 3.13.1-216.el7 is needed by container-selinux-2:2.95-2.el7_6.noarch

出现 “>=版本号”:说明你的系统上已经安装了这些包,只是这些包不是最新的,需要升级

policycoreutils包为例,可以在https://pkgs.org/上搜索对应的最新的rpm包,执行以下命令进行升级:

$ sudo rpm -Uvh policycoreutils-2.5-29.el7.x86_64.rpm

如果对应的这个包被其它包依赖(policycoreutilspolicycoreutils-python包依赖),这时会出现错误提示:

error: Failed dependencies:
policycoreutils = 2.5-8.el7 is needed by (installed) policycoreutils-python-2.5-8.el7.x86_64

解决办法:先以不依赖的方式安装policycoreutils,再下载新的policycoreutils-python包升级。

$ sudo rpm -Uvh policycoreutils-2.5-29.el7.x86_64.rpm --nodeps
$ sudo rpm -Uvh policycoreutils-python-2.5-29.el7.x86_64.rpm

其它类似错误,参考以上方法即可。

2、如果出现的是:

error: Failed dependencies:
xxxxxx is needed by xxxxxxxxxxxxxxxxxx

直接下载对应的包安装即可。https://pkgs.org/

启动Docker服务

$ sudo systemctl start docker

安装后配置

添加国内镜像

只有内网的情况下可以不配置

国内镜像很多,如阿里云,网易蜂巢,DaoCloud,Docker中国区官方镜像等,这些都可以。

这里选择阿里的镜像:https://7uuu3esz.mirror.aliyuncs.com ,当然这是我自己免费申请的

sudo vim /etc/docker/daemon.json,添加如下内容,注意替换镜像地址url

{
...省略其它配置...,
"registry-mirrors": ["https://7uuu3esz.mirror.aliyuncs.com"]
}

修改Docker根目录

推荐配置

Docker默认安装在/var/lib/docker目录下,一般而言,如果我们的服务器没有把/var目录从/分离出来,那么就会占用/目录的空间,一般根目录设置都不会很大,镜像、容器等又比较占硬盘,推荐修改到大容量目录

sudo vim /etc/docker/daemon.json,添加"data-root"指定docker安装根目录,注意替换/path/to/path

{
...省略其它配置...,
"data-root": "/path/to/path"
}

容器日志配置

推荐配置

当容器日志量变大,长期不处理的话,日志只会越来越多,占用空间不说,docker logs -f 容器时,日志滚动很久才会到最新的日志

我们通过设置修改单个日志配置文件的最大值与当日志到达最大值后保留的日志文件数

sudo vim /etc/docker/daemon.json

{
...省略其它配置...,
"log-driver": "json-file",
"log-opts": {"max-size":"50m", "max-file":"1"}
}

日志量尽量设置得少一些,50m其实也很大,屏幕也要刷好久,最好在测试与生产环境将输出到控制台的日志写到文件或ELK中

添加自建私有仓库支持

如果没有可以不配置

有时我们需要将自己公司的docker镜像上传到自建私有仓库来分发镜像

一般而言,我们不会为私有仓库添加https支持,docker官方又要求需要使用https才能login\pull\push等操作

官方给出的解决办法是添加insecure-registries,可同时添加多个

sudo vim /etc/docker/daemon.json

{
...省略其它配置...,
"insecure-registries": ["10.2.7.70:5000"]
}

添加用户到docker组

只用root用户可以不配置

非root用户使用docker命令需要加sudo前缀,这是可以通过配置避免的

您现在应该考虑将用户添加到“docker”组

$ sudo usermod -aG docker your-user-name
$ newgrp docker

重启使Docker配置生效

所有配置修改都需要重启docker服务才能生效

systemctl daemon-reload
systemctl restart docker

通过docker info查看配置是否生效

卸载Docker

使用yum包管理方式

$ sudo yum remove docker-ce

删除docker安装目录

删除docker根目录为危险操作,会删除docker容器、镜像、数据,请谨慎操作

$ sudo rm -rf /var/lib/docker #默认安装目录

通过docker info | grep "Docker Root Dir"查看安装目录,并删除此目录

CentOS安装Docker-ce并配置国内镜像的更多相关文章

  1. CentOS安装docker ce的三种方式

    参考文章: CentOS安装docker ce的三种方式: 1.环境 CentOS Linux release 7.6.1810 (Core) 2.卸载旧版本 sudo yum remove dock ...

  2. CentOS 安装 Docker CE

    准备工作 系统要求 Docker CE 支持 64 位版本 CentOS 7,并且要求内核版本不低于 3.10. CentOS 7 满足最低内核的要求,但由于内核版本比较低,部分功能(如 overla ...

  3. CentOS安装Docker CE

    安装Docker CE(免费版) docker EE企业版您可以根据需要以不同方式安装Docker CE: 大多数用户 设置Docker的存储库并从中进行安装,以便于安装和升级任务.这是推荐的方法. ...

  4. Centos下安装Docker,并配置国内docker源

    Centos下安装Docker 替换为国内的yum源(可选): mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.re ...

  5. Docker Toolbox下配置国内镜像源-阿里云加速器

    Docker machine安装 Docker Machine是一个简化Docker安装的命令行工具,通过一个简单的命令行即可在相应的平台上安装Docker,比如VirtualBox. Digital ...

  6. centos7 下安装Docker CE

    前提条件 操作系统要求 要保证centos-extrasrepository开启(enabled).默认处于开启状态. 推荐使用overlay2存储驱动 卸载老版本 $ sudo yum remove ...

  7. CentOS 7 安装Docker CE

    本节内容: 背景 Moby项目 安装Docker CE 卸载Docker CE 一.背景 在搭建Registry的过程中,发现使用Docker 1.12版本,在push镜像到Registry时会报错误 ...

  8. CentOS下安装Docker CE教程

    一.安装前准备 1.硬件要求 CentOS 7(64-bit),内核版本不能低于3.10: CentOS 6.5(64-bit或更新的版本),内核版本为 2.6.32-431 或者更高版本,一般不建议 ...

  9. centos7安装docker,并配置镜像加速

    yum安装gcc yum -y install gcc yum -y install gcc-c++ 卸载旧版本 (没有可忽略) yum -y remove docker docker-common ...

随机推荐

  1. [dfs] UVALive 3667 Ruler

    题目链接: option=com_onlinejudge&Itemid=8&page=show_problem&problem=1668">https://ic ...

  2. Android自己定义提示框

    在开发中,假设感觉系统自带的提示框不好看,开发人员能够自定义提示框的样式.主要是继承Dialog 程序文件夹结构 关键代码 package com.dzt.custom.dialog; import ...

  3. LeetCode 970. Powerful Integers (强整数)

    题目标签:HashMap 题目让我们找出所有独一的powerful integers 小于bound的情况下. 把 x^i 看作 a:把 y^j 看作b, 代入for loop,把所有的情况都遍历一遍 ...

  4. WPF,Silverlight与XAML读书笔记(3) - 标记扩展

    hystar的.Net世界 博客园 首页 新闻 新随笔 联系 管理 订阅 随笔- 103  文章- 0  评论- 107  WPF,Silverlight与XAML读书笔记(3) - 标记扩展   说 ...

  5. sizeof中的表达式不执行

    char a = 255;      printf("%d\n",a);    printf("%d\n",sizeof(++a));      printf( ...

  6. Factstone Benchmark(数学)

    http://poj.org/problem?id=2661 题意:Amtel在1960年发行了4位计算机,并实行每十年位数翻一番的策略,将最大整数n作为改变的等级,其中n!表示计算机的无符号整数(n ...

  7. Gym - 101208C 2013 ACM-ICPC World Finals C.Surely You Congest 最大流+最短路

    题面 题意:给你n(2w5)个点,m条边(7w5)有k(1e3)辆车停在某些点上的,然后他们都想尽快去1号点,同时出发,同一个点不允许同时经过, 如果多辆车同时到达一个点,他们就会堵塞,这时候只能选择 ...

  8. printf的字符型

    参  数 说  明 %s 按实际宽度输出一个字符串 %ms m指定宽度(不足时左补空格,大于时按实际宽度输出) %-ms 左对齐,不足时右补空格 %m.ns 输出占m个字符位置,其中字符数最多n个,左 ...

  9. JavaScript 计时器

    在JavaScript中,我们可以在设定的时间间隔之后来执行代码,而不是在函数被调用后立即执行.计时器类型:一次性计时器:仅在指定的延迟时间之后触发一次.间隔性触发计时器:每隔一定的时间间隔就触发一次 ...

  10. ACM_哥德巴赫猜想(素数筛)

    哥德巴赫猜想 Time Limit: 2000/1000ms (Java/Others) Problem Description: 哥德巴赫猜想大概是这么一回事:“偶数(>=4) == 两个质数 ...