Appearance
Docker 安装
以 centos 为例
1.移除旧版本
旧版本的Docker被称为 docker
或 docker-engine
。在尝试安装新版本之前,请卸载任何此类旧版本以及相关的依赖项。
bash
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
2.设置 docker yum 源
bash
sudo yum install -y yum-utils
# 官方源
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 阿里源
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
3.安装最新docker engine
要安装最新版本
bash
sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
4.安装指定版本docker engine
要安装特定版本,请首先列出存储库中的可用版本
bash
yum list docker-ce --showduplicates | sort -r
运行后也可能发生报错,比如我遇到的
第一个问题:
- 进入
/etc/yum.repos.d/
bash
cd /etc/yum.repos.d
将
CentOS-SCLo-scl
和CentOS-SCLo-scl-rh
里的http://mirror.centos.org
替换为https://mirrors.aliyun.com
,并注释 mirrorlist,解除 baseurl 的注释比如:
bash# baseurl=http://mirror.centos.org/centos/7/sclo/$basearch/sclo/ mirrorlist=http://mirrorlist.centos.org?arch=$basearch&release=7&repo=sclo-sclo
改为阿里云镜像
bashbaseurl=https://mirrors.aliyun.com/centos/7/sclo/$basearch/sclo/ # mirrorlist=http://mirrorlist.centos.org?arch=$basearch&release=7&repo=sclo-sclo
yum update
第二个问题:
- 进入阿里云镜像服务
- 创建个人实例
- 选择镜像工具 -> 镜像加速器
添加 daemon.json
配置
bash
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://5az2cmpg.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
以后拉取镜像都是直接从阿里云拉取
/etc/docker/daemon.json 是Docker的核心配置文件
解决完问题就可以选择安装指定版本的 docker engine了
bash
# 安装指定版本,用上面的版本号替换<VERSION_STRING>
sudo yum install docker-ce-<VERSION_STRING>.x86_64 docker-ce-cli-
<VERSION_STRING>.x86_64 containerd.io
# 例如:
#yum install docker-ce-3:20.10.5-3.el7.x86_64 docker-ce-cli-3:20.10.5-3.el7.x86_64 containerd.io
# 注意加上 .x86_64 大版本号
5.离线安装
Index of linux/centos/7/x86_64/stable/Packages/ (docker.com)
选择需要使用的版本进行下载
bash
rpm -ivh xxx.rpm
也可以下载 tar 文件,解压启动即可
6.启动服务
bash
systemctl start docker
systemctl enable docker