同福

在CentOS7上面升级docker到docker-ce的最新版本【20210601】

介绍

介绍

福哥在使用docker-compose工具build镜像的时候得到了如下的错误信息:

[root@dev TFLinux]# docker-compose build mysql
Building mysql
unknown flag: --iidfile
See 'docker build --help'.
ERROR: Service 'mysql' failed to build : Build failed

各种搜索发现都没有人发现这个问题,结果从一个老外那里得到了一些灵感,大概是说我的docker版本和docker-compose版本过低的原因。

卸载旧版本

查看安装列表

使用yum查看已经安装的列表。

yum list installed | grep docker

home/topic/2021/0602/15/2074ddb5186b7aade29ffaa4da952ba0.png

卸载列表软件

使用yum remove逐个卸载列表内的软件。

yum -y remove docker
yum -y remove docker-client
yum -y remove docker-common

安装yum-config-manager

网上的教程都是使用yum-config-manager,可是我们的TFLinux没有啊!怎么办?

使用下面的命令安装yum工具包。

yum -y install yum-utils

安装新版本

添加docker的镜像源

使用yum-config-manager添加docker的镜像源。

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

home/topic/2021/0602/15/614c541071c79fbf7b38eea8e18d6f36.png

查看可用的docker版本

使用yum list查看docker可用版本列表,并且把最新版本显示到最后。

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

home/topic/2021/0602/15/e9649c2eb62930dc811b6da902921383.png

安装最新版本docker

使用yum install安装最新版本的docker,也就是18.06.3.ce-3.el7这个版本。

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

home/topic/2021/0602/15/6839bf2f3cf5968bc0b6861f1bed7f39.png

启动docker

使用systemctl启动docker。

systemctl start docker
systemctl enable docker

查看docker版本信息

使用docker version查看当前的docker版本。

docker --version

home/topic/2021/0602/15/33055dcabb56d8aca1dc3e6f387d83c4.png

测试

好了,已经升级了docker了,再来build镜像试试看吧。

[root@dev TFLinux]# docker-compose build mysql
Building mysql
Sending build context to Docker daemon  3.584kB
Step 1/8 : FROM mysql:5.7
5.7: Pulling from library/mysql
Digest: sha256:a682e3c78fc5bd941e9db080b4796c75f69a28a8cad65677c23f7a9f18ba21fa
Status: Downloaded newer image for mysql:5.7
 ---> 2c9028880e58
Step 2/8 : MAINTAINER Andy Bogate
 ---> Running in 5a88f6b4bea1
Removing intermediate container 5a88f6b4bea1
 ---> 81c2a429f2a1
Step 3/8 : MAINTAINER tongfu@tongfu.net
 ---> Running in 6737791fe0a2
Removing intermediate container 6737791fe0a2
 ---> 333194fbe01d
Step 4/8 : MAINTAINER http://docker.tongfu.net
 ---> Running in 0706e1799a31
Removing intermediate container 0706e1799a31
 ---> 5a69c60c0693
Step 5/8 : MAINTAINER 2021/5/12
 ---> Running in c2c9e511b30a
Removing intermediate container c2c9e511b30a
 ---> 483de9a669f2
Step 6/8 : MAINTAINER v1.0.0
 ---> Running in bf4803c92b18
Removing intermediate container bf4803c92b18
 ---> 2e886ee59695
Step 7/8 : EXPOSE 3306
 ---> Running in 18ce6a60962a
Removing intermediate container 18ce6a60962a
 ---> 059508b3fff0
Step 8/8 : COPY mysqld.conf /etc/mysql/mysql.conf.d/mysqld.cnf
 ---> 018f0f80e010
Successfully built 018f0f80e010
Successfully tagged tflinux-mysql5.7:latest

终于成功了!!

总结

docker的发展非常快,而且都是大踏步的前进。很多时候我们遇到了一些稀奇古怪的问题的时候,都是因为我们的环境的软件版本太旧了的缘故。所以我们要有一颗年轻的心,拥抱新事物,积极了解新东西,学习新东西,从而不被时代抛弃~~