服务器安装docker

服务器安装docker梳理

目前最新版本是26.0.0

如果曾经安装过docker,需要卸载掉。

卸载旧版本

  1. 如果服务器上安装过旧版本可以尝试如下命令卸载

    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/
    
  2. 如果你服务器安装过比较新版本的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) 这三个是必须安装的。

后面三个可以根据需求选择安装了。

  1. docker-buildx-plugin: Buildx 是 Docker 的一个插件,它提供了构建 Docker 镜像的扩展功能。Buildx 支持使用 BuildKit 构建工具,提供了更多的构建性能和灵活性,例如构建多平台镜像、利用缓存机制提高构建速度等。

  2. docker-compose-plugin: 这是 Docker Compose 的插件版本,用于定义和运行多容器 Docker 应用程序。通过一个 YAML 文件来配置应用服务,然后使用一个命令创建和启动所有服务。新版本的 Docker Compose 是作为 Docker 的插件而不是独立的二进制文件提供的。

  3. 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
posted @ 2024-03-29 16:30  DevLogic  阅读(26)  评论(0编辑  收藏  举报