在 CentOS 上安装 Docker 和 Docker Compose(可指定版本或安装最新版本)

server/2025/1/13 3:20:07/

文章目录

    • 一、安装 Docker
      • 1.1 安装最新版本的 Docker
      • 1.2 安装指定版本的 Docker
    • 二、配置 Docker 镜像加速器(国内镜像源)
    • 三、安装 Docker Compose
      • 3.1 安装最新版本的 Docker Compose
      • 3.2 安装指定版本的 Docker Compose
    • 四、卸载 Docker 和 Docker Compose
      • 4.1 卸载 Docker
      • 4.2 卸载 Docker Compose
    • 五、常见问题与解决方案
    • 六、总结


一、安装 Docker

1.1 安装最新版本的 Docker

  1. 更新系统软件包

    sudo yum update -y
    
  2. 安装必要的软件包

    sudo yum install -y yum-utils
    
  3. 添加 Docker 的官方 Yum 仓库(使用阿里云镜像)

    sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    
  4. 安装最新版本的 Docker

    sudo yum install -y docker-ce docker-ce-cli containerd.io
    
  5. 启动并设置开机自启

    sudo systemctl start docker
    sudo systemctl enable docker
    
  6. 验证安装结果

    docker --version
    

    如果输出类似 Docker version 20.10.xx,说明安装成功。


1.2 安装指定版本的 Docker

如果需要安装特定版本(如为了兼容某些软件),可以按以下步骤操作:

  1. 查看支持的 Docker 版本

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

    输出示例如:

    docker-ce.x86_64    3:20.10.12-3.el7   docker-ce-stable
    docker-ce.x86_64    3:19.03.15-3.el7   docker-ce-stable
    docker-ce.x86_64    3:18.09.1-3.el7    docker-ce-stable
    ...
    
  2. 安装指定版本的 Docker

    假设需要安装 19.03.15,可以运行:

    sudo yum install -y docker-ce-19.03.15 docker-ce-cli-19.03.15 containerd.io
    
  3. 启动并设置开机自启

    sudo systemctl start docker
    sudo systemctl enable docker
    
  4. 验证安装版本

    docker --version
    

二、配置 Docker 镜像加速器(国内镜像源)

在国内网络环境下,直接访问 Docker Hub 可能速度较慢。可通过配置国内镜像源加速拉取镜像。

  1. 配置加速器

    sudo tee /etc/docker/daemon.json <<-'EOF'
    {"registry-mirrors": ["https://docker.m.daocloud.io","https://dockerproxy.com","https://docker.mirrors.ustc.edu.cn","https://docker.nju.edu.cn","https://vp5v3vra.mirror.aliyuncs.com","https://docker.registry.cyou","https://docker-cf.registry.cyou","https://dockercf.jsdelivr.fyi","https://docker.jsdelivr.fyi","https://dockertest.jsdelivr.fyi","https://mirror.baidubce.com","https://docker.m.daocloud.io","https://docker.nju.edu.cn","https://docker.mirrors.sjtug.sjtu.edu.cn","https://docker.mirrors.ustc.edu.cn","https://mirror.iscas.ac.cn","https://docker.rainbond.cc"]
    }
    EOF
    
  2. 重启 Docker 服务

    sudo systemctl daemon-reload
    sudo systemctl restart docker
    

三、安装 Docker Compose

3.1 安装最新版本的 Docker Compose

  1. 下载最新版本

可以执行下面命令:

sudo curl -L "https://github.com/docker/compose/releases/download/${latest_version}/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

注意:也可以将${latest_version} 需替换为实际版本号,例如 v2.32.2

  1. 赋予执行权限

    sudo chmod +x /usr/local/bin/docker-compose
    
  2. 验证安装结果

    docker-compose --version
    

    若输出类似 Docker Compose version v2.32.2 则说明安装成功。


3.2 安装指定版本的 Docker Compose

可以先在 GitHub Releases 页面 查看有哪些版本号,如果需要安装某个固定版本(如 v2.32.2),可按以下步骤操作:

  1. 下载指定版本

    sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
    

    在网络环境不佳的情况下,此方式可能比较慢甚至会超时。可以直接在 GitHub 上下载相应的 .tar.gz 或可执行文件后手动上传至服务器。例如:

    1. 在 GitHub Releases 选择对应版本并下载 docker-compose-Linux-x86_64(根据系统架构选择文件)。
    2. 使用 scp 或其他方式上传至服务器的 /usr/local/bin/ 目录。
    3. 将文件重命名为 docker-compose,以便统一使用。
  2. 赋予执行权限

    sudo chmod +x /usr/local/bin/docker-compose
    
  3. 验证安装版本

    docker-compose --version
    

    如果输出类似 docker-compose version 1.29.2,表示安装成功。


四、卸载 Docker 和 Docker Compose

4.1 卸载 Docker

如无需再使用 Docker,可按照以下步骤卸载:

  1. 停止 Docker 服务

    sudo systemctl stop docker
    
  2. 卸载相关组件

    sudo yum remove -y docker-ce docker-ce-cli containerd.io
    
  3. 清理 Docker 数据

    sudo rm -rf /var/lib/docker
    sudo rm -rf /var/lib/containerd
    

    以上操作会删除 Docker 及其相关数据(包括容器、镜像等),请谨慎执行。


4.2 卸载 Docker Compose

Docker Compose 卸载很简单,只需删除其二进制文件:

sudo rm -f /usr/local/bin/docker-compose

验证是否已卸载:

docker-compose --version

如果提示 command not found,则说明卸载成功。


五、常见问题与解决方案

  1. 无法访问官方仓库导致安装失败

    配置国内镜像源,例如:

    sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    

    然后重新安装 Docker。

  2. docker-compose 无法执行或出现 “Permission denied”

    • 确认 /usr/local/bin/docker-compose 文件权限正确:
      sudo chmod +x /usr/local/bin/docker-compose
      
    • 若仍无法使用,检查是否需要手动添加 /usr/local/bin 至系统 PATH
      export PATH=$PATH:/usr/local/bin
      
    • 或将上述命令添加进 ~/.bashrc,然后 source ~/.bashrc

六、总结

  • 安装最新版本:无需特定依赖要求时,可直接获取最新特性与安全补丁。
  • 安装指定版本:在对环境兼容性要求较高、尤其是生产环境时,可选择特定版本。
  • 镜像加速器配置:国内网络环境下拉取镜像会更稳定、更快速。
  • 卸载与数据清理:提供从系统中彻底移除 Docker 及其数据的方式,便于重新配置或节省资源。
  • 常见问题处理:针对国内访问缓慢、docker-compose 权限等问题进行了说明。

http://www.ppmy.cn/server/157914.html

相关文章

【k8s】监控metrics-server

metrics-server介绍 Metrics Server是一个集群范围的资源使用情况的数据聚合器。作为一个应用部署在集群中。Metric server从每个节点上KubeletAPI收集指标&#xff0c;通过Kubernetes聚合器注册在Master APIServer中。为集群提供Node、Pods资源利用率指标。 就像Linux 系统一样…

设计模式(观察者模式)

设计模式&#xff08;观察者模式&#xff09; 第三章 设计模式之观察者模式 观察者模式介绍 观察者模式&#xff08;Observer Design Pattern&#xff09; 也被称为发布订阅模式 。模式定义&#xff1a;在对象之间定义一个一对多的依赖&#xff0c;当一个对象状态改变的时候…

车载软件架构 --- 关于ARXML文件那点事

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 简单,单纯,喜欢独处,独来独往,不易合同频过着接地气的生活,除了生存温饱问题之外,没有什么过多的欲望,表面看起来很高冷,内心热情,如果你身…

Docker基础篇(一)

目录 1.0 Docker为什么出现 2.0Docker理念简介 2.1Docker是什么 2.2传统虚拟机和容器的对比 比较Docker和传统虚拟化方式的不同之处 2.3Docker能干嘛 3.0Docker的安装 3.1去哪里下 3.2Docker安装 3.3前提条件 3.4Docker的基本组成三要素&#xff08;镜像、容器、仓库…

java 转义 反斜杠 Unexpected internal error near index 1

代码&#xff1a; String str"a\\c"; //出现异常&#xff0c;Unexpected internal error near index 1 //System.out.println(str.replaceAll("\\", "c"));//以下三种都正确 System.out.println(str.replace(\\, c)); System.out.println(str.r…

Excel如何分区设置密码,一个区域一个密码,数据收集时使用太方便了

大家好&#xff0c;我是小鱼。 很多小伙伴在使用Excel表格的时候&#xff0c;有可能需要为不同的区域设置不同的密码&#xff0c;比如搜集公司不同的部门&#xff0c;或者学校不同的班级的信息时&#xff0c;为了使收集的信息不被别人改动&#xff0c;这时就需要为他们各自设置…

完全自定义Qt翻译功能,不使用Qt Linguist的.ts 和 .qm类型翻译

这篇文章展示了集成Qt Linguist 的功能。 但是有时候Qt的翻译功能比较繁琐&#xff0c;我们简单项目只需要使用本地化功能&#xff0c;将中文字符串导入到项目中&#xff0c;避免编码格式问题导致的乱码。 只需要使用一个简单的json或者其他格式的本地文件作为映射的key/value.…

spring mvc源码学习笔记之八

本文说点儿简单的。 如果你想研究基于 XML 配置的 spring mvc 的话&#xff0c;可以简单扫一眼本文。 在基于 XML 配置的 spring mvc 开发中&#xff0c;我们主要就是通过 spring 提供的各种标签来配置。 但是&#xff0c;大家是不是都有个疑问&#xff0c;spring 到底给我们提…