Linux安装Docker教程(详解)

如果想要系统学习docker,建议进入官方文档中学习:docker官方文档

Ubuntu系统的同学请看这篇 Ubuntu24.04无脑安装docker(含图例)

一. 基本概念

  • Docker Desktop 和 Docker Engine 有什么区别?

Docker Desktop for Linux 提供用户友好的图形界面,可简化容器和服务的管理。它包括 Docker Engine,因为这是为 Docker 容器提供支持的核心技术。适用于 Linux 的 Docker Desktop 还附带了 Docker Scout 和 Docker Extensions 等附加功能。

二. 删除旧版本(可选)

yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-selinux \
                  docker-engine-selinux \
                  docker-engine \
                  docker-ce

三. 开始安装

  1. 安装所需的软件包 yum-utils,device-mapper-persistent-data和lvm2
yum install -y yum-utils device-mapper-persistent-data lvm2

yum-utils:
yum-utils 是一组为 YUM(Yellowdog Updater Modified)包管理器提供额外功能的工具。它包括了多个实用程序,如 yum-config-manager,这个工具可以用来方便地添加和管理 YUM 软件源。需要使用 yum-config-manager 来设置 Docker 的官方仓库。
device-mapper-persistent-data:
这个软件包提供了支持设备映射器(device mapper)驱动的工具,特别是用于持久化数据的逻辑卷管理。Docker 使用 device mapper 作为存储驱动之一,用于管理容器的文件系统层。device-mapper-persistent-data 包含了必要的工具来处理这些底层的文件系统操作,确保容器的数据能够被正确且高效地管理。
lvm2:
LVM (Logical Volume Manager) 是 Linux 下的一种磁盘分区管理技术,允许创建、调整大小和管理磁盘分区,即逻辑卷。LVM 提供了灵活性,例如可以在不丢失数据的情况下调整分区大小。lvm2 包含了管理和配置 LVM 所需的命令行工具。Docker 可以利用 LVM 和 device mapper 驱动来更有效地管理容器的存储空间,特别是在需要频繁创建和删除容器的环境中。

报错请点击这里查看
2. 更换docker镜像仓库 (三个任选其一)

# 官方源 (慢 不推荐)
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 阿里云 (推荐)
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
  1. 安装docker
# 安装docker,docker-cli
sudo yum -y install docker-ce docker-ce-cli containerd.io 
  1. 配置docker加速 (现在配置阿里云容器镜像加速需要是阿里云设备,我是本地虚拟机,所以此处不使用阿里的镜像加速了)
vi /etc/docker/daemon.json
# 直接复制进去并保存 (2025.3.7最新可用源,看到这里的同学请评论一下是否还有效,无效博主会来更新)
 {
  "registry-mirrors": [
    "http://docker.1ms.run",
    "http://docker.mybacc.com"
  ]
}
# 启动/重启docker
sudo systemctl daemon-reload  
#如果还没启动
sudo systemctl start docker
#如果已经启动
sudo systemctl restart docker

# 验证镜像加速是否修改 查看Registry Mirrors部分
sudo docker info

四. 启动和验证

# 启动docker 上一步启动过了就不用再重复执行
sudo systemctl start docker
# docker开机自启
systemctl enable docker
# 拉取测试镜像 验证
sudo docker pull hello-world
// 执行hello-world
sudo docker run hello-world

五. 问题总结

yum安装软件包时报错

[root@localhost ~]# yum install -y yum-utils device-mapper-persistent-data lvm2
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=os&infra=vag error was
14: curl#6 - “Could not resolve host: mirrorlist.centos.org; Unknown error”
One of the configured repositories failed (Unknown),
and yum doesn’t have enough cached data to continue. At this point the only
safe thing yum can do is fail. There are a few ways to work “fix” this:
1. Contact the upstream for the repository and get them to fix the problem.
2. Reconfigure the baseurl/etc. for the repository, to point to a working
upstream. This is most often useful if you are using a newer
distribution release than is supported by the repository (and the
packages for the previous distribution release still work).
3. Run the command with the repository temporarily disabled
yum --disablerepo= …
4. Disable the repository permanently, so yum won’t use it by default. Yum
will then just ignore the repository until you permanently enable it
again or use --enablerepo for temporary usage:
yum-config-manager --disable
or
subscription-manager repos --disable=
5. Configure the failing repository to be skipped, if it is unavailable.
Note that yum will try to contact the repo. when it runs most commands,
so will have to try and fail each time (and thus. yum will be be much
slower). If it is a very temporary problem though, this is often a nice
compromise:
yum-config-manager --save --setopt=.skip_if_unavailable=true
Cannot find a valid baseurl for repo: base/7/x86_64

错误原因:

centos7已停止运营,已被归档,需要更换yum源

解决方案:更换为阿里源或其他国内源

cd /etc/yum.repos.d
# 备份原有的源
cp CentOS-Base.repo CentOS-Base.repo.back
#下载国内源的 YUM 配置文件 (本文采用阿里源,需要其他可自行百度)
sudo wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
# 如果没有wget 可以使用curl命令
sudo curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
# 清理 YUM 缓存
sudo yum clean all
sudo yum makecache
# 验证新源是否可用 会看到都是阿里的源
sudo yum repolist
### 如何在Linux操作系统上安装Docker容器平台 #### 准备工作 确保操作系统的内核版本支持cgroup v2特性,这有助于更好地管理资源分配和隔离性能。对于大多数现代Linux发行版,默认情况下已经满足此条件。 #### 更新软件包索引 为了获取最新的可用更新列表,在执行任何其他命令之前先刷新本地APT缓存或YUM库中的元数据。 ```bash sudo apt-get update # 对于基于Debian/Ubuntu的系统 sudo yum check-update # 对于基于RedHat/CentOS/Fedora的系统 ``` #### 安装必要的依赖项 一些基本工具和服务可能需要预先安装以便顺利完成后续步骤。 ```bash sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common # Debian/Ubuntu sudo yum install -y yum-utils device-mapper-persistent-data lvm2 # RedHat/CentOS/Fedora ``` #### 添加官方GPG密钥与存储库 通过验证签名来保障所下载软件的真实性至关重要;因此要添加来自Docker官方网站的安全公钥,并注册稳定版发布渠道作为新的APT/YUM源之一。 ```bash curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg # Ubuntu/Debian sudo add-apt-repository "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo # CentOS/RHEL ``` #### 执行实际安装过程 现在可以安全地调用`install`指令完成最终部署动作了。 ```bash sudo apt-get install docker-ce docker-ce-cli containerd.io # Debian/Ubuntu sudo yum install docker-ce docker-ce-cli containerd.io # RedHat/CentOS/Fedora ``` #### 启动服务并设置开机自启 为了让新安装的服务能够立即生效以及每次重启计算机后自动加载,需分别启用它对应的systemctl单元文件。 ```bash sudo systemctl start docker.service sudo systemctl enable docker.service ``` #### 验证安装成功与否 最后一步是确认一切正常运作——即可以通过CLI客户端查询当前已知的所有活动实例状态。 ```bash docker info ``` 以上就是在Linux环境下搭建Docker环境所需经历的主要环节概述[^1]。
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

azoon.top

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值