2023 11 08 阿里云Linux更新docker
Contents
前言
我的系统信息:
Distributor ID: AlibabaCloud(AliyunLinux)
Description: Alibaba Cloud Linux (Aliyun Linux) release 2.1903 LTS (Hunting Beagle)
Release: 2.1903
aliyun linux 2实际对应的是centos7。默认的docker版本是Docker version 1.13.1, build 7d71120/1.13.1,这个版本已经很老旧了,无法兼容一些新的容器。所以升级是非常有必要的。
卸载旧版本
删除docker
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
如果无法卸载,则需要先查看安装的docker包。 执行下面的指令:
yum list installed | grep docker
打印结果如下:
docker.x86_64 2:1.13.1-209.git7d71120.1.al7 @updates
docker-client.x86_64 2:1.13.1-209.git7d71120.1.al7 @updates
docker-common.x86_64 2:1.13.1-209.git7d71120.1.al7 @updates
docker-compose.noarch 1.18.0-4.el7 @epel
docker-rhel-push-plugin.x86_64 2:1.13.1-209.git7d71120.1.al7 @updates
python36-docker.noarch 2.6.1-3.el7 @epel
python36-docker-pycreds.noarch 0.2.1-2.el7 @epel
python36-dockerpty.noarch 0.4.1-18.el7 @epel
然后再次执行
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-compose \
docker-rhel-push-plugin \
python36-docker \
python36-docker-pycreds \
python36-dockerpty
删除残余文件
删除/lib/systemd/system
下面的docker.service
和docker.socket
删除/etc/systemd/system/
下面的docker.service
和docker.service.d
安装新版本
卸载旧版本后,首先修改docker的镜像源:
sudo yum install -y yum-utils
sudo yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
先别急着安装,需要修改下源文件才能正确安装,不然会报错404.
命令行输入:
vim /etc/yum.repos.d/docker-ce.repo
按键盘字母i进入修改模式。替换docker-ce-stable里面的$releasever为7
[docker-ce-stable]
name=Docker CE Stable - $basearch
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/7/$basearch/stable
enabled=1
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg
输入:wq报错并退出。
然后运行安装命令:
sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-compose
安装完成后检查版本
docker --version
发现版本已经更新
启动docker
sudo systemctl start docker
设置docker开机启动
systemctl enable docker.service
FAQ
-
daemon.json配置hosts后无法启动 将
/usr/lib/systemd/system/docker.service
文件中的ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
修改为ExecStart=/usr/bin/dockerd
-
如何修改了data-root,记得删除旧目录
rm -rf /var/lib/docker