服务器安装docker
服务器安装docker梳理
目前最新版本是26.0.0
如果曾经安装过docker,需要卸载掉。
卸载旧版本
-
如果服务器上安装过旧版本可以尝试如下命令卸载
sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine
你的服务器可能提示你这些包都没有被安装过,这是正常的不用在意。
然后自己决定要不要删除网络,volumes,镜像等东西。如果要删除执行如下命令
sudo rm -rf /var/lib/docker/
-
如果你服务器安装过比较新版本的docker,卸载命令如下
sudo yum remove docker-ce docker-ce-cli containerd.io docker-buildx- plugin docker-compose-plugin docker-ce-rootless-extras
然后自己决定要不要删除网络,volumes,镜像等东西。如果要删除执行如下命令
sudo rm -rf /var/lib/docker sudo rm -rf /var/lib/containerd
还需要卸载一个,如果不卸载这个,按照指定版本安装会产生冲突。
sudo yum remove docker-buildx-plugin
安装最新版本的docker
安装yum-utils(提供yum-config-manager功能),并设置存储库
sudo yum install -y yum-utils
sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras
# 国内使用阿里云
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
更新yum
# 我们在更新yum源或者出现配置yum源之后,通常都会使用yum makecache 生成缓存
# 这个命令是将软件包信息提前在本地缓存一份,用来提高搜索安装软件的速度
yum makecache fast
官方网站的安装命令是这样的
sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras
Docker 社区版 (docker-ce
)、Docker 命令行接口 (docker-ce-cli
) 以及容器运行时 (containerd.io
) 这三个是必须安装的。
后面三个可以根据需求选择安装了。
-
docker-buildx-plugin: Buildx 是 Docker 的一个插件,它提供了构建 Docker 镜像的扩展功能。Buildx 支持使用 BuildKit 构建工具,提供了更多的构建性能和灵活性,例如构建多平台镜像、利用缓存机制提高构建速度等。
-
docker-compose-plugin: 这是 Docker Compose 的插件版本,用于定义和运行多容器 Docker 应用程序。通过一个 YAML 文件来配置应用服务,然后使用一个命令创建和启动所有服务。新版本的 Docker Compose 是作为 Docker 的插件而不是独立的二进制文件提供的。
-
docker-ce-rootless-extras: 是 Docker 的一个可选组件,它允许用户以非 root 用户身份运行 Docker 守护程序和容器。需要额外的配置
这里只安装前三个
sudo yum install docker-ce docker-ce-cli containerd.io
启动之后,验证是否成功,能打印版本信息说明启动成功
systemctl start docker
docker version
安装指定版本的docker
安装yum-utils(提供yum-config-manager功能),并设置存储库
sudo yum install -y yum-utils
# 国内使用阿里云
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
更新yum
# 我们在更新yum源或者出现配置yum源之后,通常都会使用yum makecache 生成缓存
# 这个命令是将软件包信息提前在本地缓存一份,用来提高搜索安装软件的速度
yum makecache fast
安装指定版本的docker首先要找到对应的版本号,比如我要安装 20.10.17。
yum list docker-ce --showduplicates | grep 20.10.17
# 可以看到如下输出
docker-ce.x86_64 3:20.10.17-3.el7 docker-ce-stable
-
".x86_64" 指的是系统架构,可以省略,包管理器会根据你的系统自动选择正确的架构
-
"3:" 是docker-ce软件包的纪元号,具体版本安装软件包时,通常可以省略纪元号,因为yum会处理好这部分
-
3.el7 是版本号号的一部分,不能省略。3 是包维护者给出的修订版本号,el7表示这个包是为 CentOS/RHEL 7(Enterprise Linux 7)构建的。
所以这个时候需要安装的包是 docker-ce-20.10.17-3.el7
然后找到 docker-ce-cli 对应的版本号
yum list docker-ce-cli --showduplicates | grep 20.10.17
docker-ce-cli.x86_64 1:20.10.17-3.el7 docker-ce-stable
然后还需要找到docker-ce-rootless-extras,和 docker-scan-plugin,这两个属于依赖,如果自动安装的话,安装最新版本会冲突报错。
yum list docker-ce-rootless-extras --showduplicates | grep 20.10.17
docker-ce-rootless-extras.x86_64 20.10.17-3.el7 docker-ce-stable
因为 docker-scan-plugin 版本号不一致,所以我找了一台运行正常服务器上20.10.17对应的安装版本,运行正常就意味着这个版本是可以用的。@表示已安装。
yum list docker-scan-plugin --showduplicates | grep @
docker-scan-plugin.x86_64 0.17.0-3.el7 @docker-ce-stable
然后最终的安装命令就是这样
sudo yum install docker-ce-20.10.17-3.el7 docker-ce-cli-20.10.17-3.el7 containerd.io docker-ce-rootless-extras-20.10.17-3.el7 docker-scan-plugin-0.17.0-3.el7
containerd.io不需要指定版本号,因为如果你安装了特定版本的 docker-ce
,包管理器将会解析并安装适合这个版本的 containerd.io
安装指定版本的docker-compose
最新版本的docker-compose只需要安装docker-compose-plugin,指定版本的还是需要自己下载包到指定位置的。
curl -L https://github.com/docker/compose/releases//download/1.29.2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
uname -s
:这个命令会输出当前操作系统的内核名称。例如,如果你在 Linux 系统上运行它,它通常会输出Linux
。uname -m
:这个命令会输出你的机器的硬件名称,也就是你的处理器架构。例如,它可能会输出x86_64
表示是一个 64 位的 Intel 或 AMD 处理器。
赋权
sudo chmod +x /usr/local/bin/docker-compose
最后安装命令补全工具可以不装
yum -y install bash-completion
# 刷新配置
source /usr/share/bash-completion/bash_completion
#下载配置文件
curl -L https://raw.githubusercontent.com/docker/compose/1.24.1/contrib/completion/bash/docker-compose -o /etc/bash_completion.d/docker-compose
# 刷新配置
source /etc/bash_completion.d/docker-compose