有网安装 Docker 指定版本

有网安装 Docker

从 2017 年 3 月开始 docker 在原来的基础上分为两个分支版本: Docker CE 和 Docker EE。

Docker CE 即社区免费版,Docker EE 即企业版,强调安全,但需付费使用。

本文介绍 Docker CE 的安装使用。
参考文档 官网安装教程
移除旧的版本:

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

安装一些必要的系统工具:

sudo yum install -y yum-utils device-mapper-persistent-data lvm2
sudo yum install -y containerd.io

添加软件源信息:

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

更新 yum 缓存:

sudo yum makecache fast

查看可用版本的 Docker-ce:

yum list docker-ce --showduplicates | sort -r

注意:如果需要只显示table版本,可以关闭测试版本的list:

sudo yum-config-manager --enable docker-ce-edge
sudo yum-config-manager --enable docker-ce-test

更新yum包索引

yum makecache fast

安装指定版本的docker-ce:

sudo yum install -y docker-ce-18.06.0.ce-3.el7

报错:如果在安装指定版本的docker时显示需要安装指定版本的docker-ce-selinux依赖包,请安装:

yum install -y https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-ce-selinux-18.06.0-ce 

安装完毕查看docker的版本docker -v就能看到Docker version 18.06.0-ce, build 0ffa825

安装完docker之后更改镜像的保存位置参考文章 (https://www.cnblogs.com/ejiyuan/p/12241998.html)

安装docker-compose

curl -L https://github.com/docker/compose/releases/download/1.25.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                Dload  Upload   Total   Spent    Left  Speed
100   617    0   617    0     0    373      0 --:--:--  0:00:01 --:--:--   373
100 11.1M  100 11.1M    0     0   368k      0  0:00:31  0:00:31 --:--:--  444k
[root@operation ~]# chmod +x /usr/local/bin/docker-compose
[root@operation ~]# docker-compose version
docker-compose version 1.23.0-rc2, build 350a555e
docker-py version: 3.5.0
CPython version: 3.6.6
OpenSSL version: OpenSSL 1.1.0f  25 May 2019

安装完docker之后最好设置自己的镜像保存地址和开机自启动

# 1. 修改镜像保存的位置(建议修改)
mkdir /DataGrand/docker # 存放docker镜像的文件夹
vi /lib/systemd/system/docker.service # 加载配置,使docker可用并把镜像放在指定路径
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock --graph /DataGrand/docker

systemctl daemon-reload   # 修改之后需要重新加载docker配置
systemctl restart docker  # 重启docker
systemctl enable docker   # 将docker设置为开机重启

# 2. 将docker下载源换成国内的(更推荐)
vi /etc/docker/daemon.json  
### 添加上这段
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}

TIPS

一、安装出现报错内容

[root@localhost yum.repos.d]# yum install docker-ce docker-ce-cli containerd.io
Last metadata expiration check: 0:04:46 ago on Mon 16 Mar 2020 03:40:11 PM CST.
Package containerd.io-1.2.0-3.el7.x86_64 is already installed.
Error:
 Problem: package docker-ce-3:19.03.8-3.el7.x86_64 requires containerd.io >= 1.2.2-3, but none of the providers can be installed
  - cannot install the best candidate for the job
  - package containerd.io-1.2.10-3.2.el7.x86_64 is excluded
  - package containerd.io-1.2.13-3.1.el7.x86_64 is excluded
  - package containerd.io-1.2.2-3.3.el7.x86_64 is excluded
  - package containerd.io-1.2.2-3.el7.x86_64 is excluded
  - package containerd.io-1.2.4-3.1.el7.x86_64 is excluded
  - package containerd.io-1.2.5-3.1.el7.x86_64 is excluded
  - package containerd.io-1.2.6-3.3.el7.x86_64 is excluded
  - package containerd.io-1.2.11-3.2.el7.x86_64 is excluded
  - package containerd.io-1.2.12-3.1.el7.x86_64 is excluded
  - package containerd.io-1.2.6-3.2.el7.x86_64 is excluded
(try to add '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages)

分析原因
看上面的内容,说的是containerd.io >= 1.2.2-3 ,意思就是 containerd.io 的版本必须大于等于 1.2.2-3

解决
1、要么就降低docker 的版本
2、如果不想降低docker 版本,那么就更新 containerd.io 的版本

[root@localhost ~]# yum install -y wget
[root@localhost ~]# wget https://download.docker.com/linux/centos/7/x86_64/edge/Packages/containerd.io-1.2.6-3.3.el7.x86_64.rpm
[root@localhost ~]# yum install -y  containerd.io-1.2.6-3.3.el7.x86_64.rpm
[root@localhost ~]# yum install docker-ce
[root@localhost ~]# docker -v
# 大功告成

二、Docker服务启动报错:Job for docker.service failed because the control process exited with error
(https://blog.csdn.net/zhangbeizhen18/article/details/85239758)

posted @ 2020-04-21 18:30  Dr-wei  阅读(57)  评论(0编辑  收藏