当前位置: 首页 > news >正文

在 CentOS 上完整安装 Docker 指南

在 CentOS 上完整安装 Docker 指南:从入门到避坑

前言

Docker 是一个开源的应用容器引擎,它允许开发者将应用及其依赖打包到一个轻量级、可移植的容器中,从而实现快速交付和部署。本文将详细介绍在 CentOS 系统上安装 Docker 的完整步骤,并针对国内网络环境提供优化的解决方案。

先决条件

  • 一台运行 CentOS 7CentOS 8(或更高版本,如 CentOS Stream)的服务器或虚拟机。
  • 拥有 sudo 权限的用户账户。
  • 稳定的互联网连接。

方法一:使用国内镜像源安装(推荐方案)

这是最适合国内网络环境的安装方法,使用阿里云或清华大学镜像源,可以避免绝大多数网络超时和连接重置问题。

步骤 1: 卸载旧版本

如果系统上存在旧的 Docker 版本,请先卸载它们以确保环境干净。

sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine

步骤 2: 安装依赖工具

安装 yum-utils 包,它提供了 yum-config-manager 工具,用于管理 Yum 仓库。

sudo yum install -y yum-utils

步骤 3: 添加国内 Docker 镜像源

任选以下一个镜像源添加即可:

  • 阿里云镜像源(推荐):

    sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    
  • 清华大学镜像源:

    sudo yum-config-manager --add-repo https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo
    

步骤 4: 更新 Yum 缓存并安装 Docker

添加仓库后,更新缓存并从新仓库安装 Docker Engine(社区版)、CLI 和 Containerd。

# 更新 Yum 缓存
sudo yum makecache fast# 安装 Docker
sudo yum install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin

步骤 5: 启动并设置开机自启

安装完成后,启动 Docker 服务并将其配置为在系统启动时自动运行。

# 启动 Docker 服务
sudo systemctl start docker# 设置开机自动启动
sudo systemctl enable docker

步骤 6: 验证安装

通过运行经典的 hello-world 镜像来验证 Docker 是否已正确安装和运行。

sudo docker run hello-world

如果看到 “Hello from Docker!” 的欢迎信息,则表示安装成功!


方法二:使用官方源安装(供参考)

如果您的网络可以顺畅访问国际网络,可以使用官方源进行安装。步骤与方法一类似,只需将第 3 步的仓库地址替换为官方地址:

sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

注意: 在国内网络环境下,此步骤很可能出现类似 [Errno 14] curl#35 - "TCP connection reset by peer" 的错误。如果遇到此错误,请直接切换至上述的方法一


安装后配置

1. 免 sudo 执行 Docker 命令(重要)

默认情况下,运行 Docker 命令需要 sudo 权限。为了避免每次输入 sudo,可以将您的用户加入 docker 用户组。

# 将当前用户添加到 docker 用户组
sudo usermod -aG docker $USER# 应用新的组权限(需要重新登录或重启系统才能生效)
newgrp docker

重要: 执行完上述命令后,您需要完全退出当前 SSH 会话并重新登录,或者直接重启系统,权限更改才会生效。之后您就可以直接运行 docker 命令了。

# 验证是否无需 sudo
docker run hello-world

2. 安装 Docker Compose

Docker Compose 是一个用于定义和运行多容器 Docker 应用程序的工具。虽然上述命令可能已安装插件版,您也可以选择手动安装独立版本的 Compose。

从 GitHub 下载最新的稳定版本并安装:

# 下载 Docker Compose(请查看 GitHub Release 页面替换为最新版本号)
sudo curl -L "https://github.com/docker/compose/releases/download/v2.23.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose# 授予可执行权限
sudo chmod +x /usr/local/bin/docker-compose# 验证安装
docker-compose --version
# 或使用插件版命令
docker compose version

常见问题与解决方案 (Q&A)

Q1: 执行命令时出现 [Errno 14] curl#35 - "TCP connection reset by peer" 错误怎么办?
A: 这是典型的网络连接问题。请放弃使用官方源,直接按照本文的方法一,切换至阿里云或清华大学的国内镜像源。

Q2: 添加了国内源但仍然很慢或出错?
A: 可以手动编辑 repo 文件,确保所有链接都已替换为国内地址。

sudo vi /etc/yum.repos.d/docker-ce.repo

检查并将文件中的 https://download.docker.com 全部替换为 http://mirrors.aliyun.com/docker-cehttps://mirrors.tuna.tsinghua.edu.cn/docker-ce

Q3: 如何查看 Docker 的版本和运行状态?
A:

# 查看 Docker 版本
docker --version# 查看 Docker 系统信息
docker info# 查看 Docker 服务状态
sudo systemctl status docker

Q4: 如何卸载 Docker?
A:

# 卸载 Docker 软件包
sudo yum remove docker-ce docker-ce-cli containerd.io# 删除镜像、容器、卷等资源文件(谨慎操作!会删除所有数据!)
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd

总结

通过本文的指导,您应该已经成功在 CentOS 系统上安装了 Docker。总结一下关键点:

  1. 首选国内源:对于国内用户,使用阿里云或清华镜像源是安装成功的关键,能有效避免网络问题。
  2. 权限管理:记得将用户加入 docker 组,以便无需 sudo 即可运行命令。
  3. 验证安装:最后务必运行 docker run hello-world 来验证所有组件是否正常工作。

现在,您的 Docker 环境已经准备就绪,可以开始拉取镜像、运行容器,探索容器化技术的强大功能了!您可以尝试运行 docker pull nginxdocker run -d -p 80:80 nginx 来启动您的第一个 Nginx 容器。

http://www.xdnf.cn/news/1470619.html

相关文章:

  • SQLServer死锁监测方案:如何使用XE.Core解析xel文件里包含死锁扩展事件的死锁xml
  • LightDock.server liunx 双跑比较
  • 消息队列-ubutu22.04环境下安装
  • 激光雷达与IMU时间硬件同步与软件同步区分
  • 深度学习之第八课迁移学习(残差网络ResNet)
  • ChartGPT深度体验:AI图表生成工具如何高效实现数据可视化与图表美化?
  • RequestContextFilter介绍
  • 53.【.NET8 实战--孢子记账--从单体到微服务--转向微服务】--新增功能--集成短信发送功能
  • 《C++变量命名与占位:深入探究》
  • SDRAM详细分析—06 存储单元架构和放大器
  • RPC内核细节(转载)
  • 软件设计模式之单例模式
  • 实战:Android 自定义菊花加载框(带超时自动消失)
  • 微型导轨如何实现智能化控制?
  • 9.5 面向对象-原型和原型链
  • 【Linux】Linux 的 cp -a 命令的作用
  • 2025高教社数学建模国赛B题 - 碳化硅外延层厚度的确定(完整参考论文)
  • Overleaf教程+Latex教程
  • Anaconda下载安装及详细配置的保姆级教程【Windows系统】
  • excel里面店铺这一列的数据结构是2C【uniteasone17】这种,我想只保留前面的2C部分,后面的【uniteasone17】不要
  • MySQL 8.0.36 主从复制完整实验
  • S32K3平台ADC 应用说明
  • 无人机RTK模块技术要点与难点
  • GEO排名优化:迈向个性化与语义化搜索时代的智能策略
  • VMwaer虚拟机安装完Centos后无法联网问题
  • SQL时间过滤神器:DATE_SUB+between实战指南,告别硬编码日期!
  • React 组件基础与事件处理
  • 04 - 【HTML】- 常用标签(下篇)
  • Windows环境下实现GitLab与Gitee仓库代码提交隔离
  • 今天一天三面,明天加油DW!!!