Linux下安装Docker

目录

1. 确定Linux版本

2.卸载旧版本Docker(可选)

3.安装必要的依赖

4.添加Docker仓库

5.配置 Docker 镜像源(推荐使用阿里云)

6.安装 Docker Engine

7.启动并设置开机自启

8.验证 Docker 安装是否成功


1. 确定Linux版本

新版本的Docker对Linux系统版本有一定的要求。如果Linux的发行版系统是centOS,安装最新版的docker需要centOS 9以上的系统。

·在Docker安装帮助页面查看支持的系统版本。

  Docker帮助页面:https://docs.docker.com/engine/install/centos/

# 查看当前版本 cat /etc/redhat-release

2.卸载旧版本Docker(可选)

如果您之前安装过Docker,建议先卸载旧版本以避免冲突。执行以下命令卸载旧版本的Docker:

3.安装必要的依赖

安装一些必要的工具:

dnf -y install dnf-plugins-core

4.添加Docker仓库

添加Docker的官方仓库,以便能够下载最新版本的Docker:

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

5.配置 Docker 镜像源(推荐使用阿里云)

添加 Docker 官方或国内源(推荐使用阿里云)

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

6.安装 Docker Engine

dnf makecache dnf -y install docker-ce docker-ce-cli containerd.io

7.启动并设置开机自启

# 启动Docker服务: systemctl start docker systemctl enable docker

8.验证 Docker 安装是否成功

docker --version

测试是否能运行容器:

docker run hello-world

        注:你的 Docker 客户端在尝试从官方镜像仓库(Docker Hub:https://registry-1.docker.io/v2/)拉取镜像 hello-world:latest 时,请求超时了。

9.使用国内镜像加速器(推荐)

创建配置文件:

# 创建docker目录 mkdir -p /etc/docker # 写入配置文件 tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": [ "https://docker.1ms.run", "https://docker.m.daocloud.io", "https://dockerproxy.com", "https://docker.1panel.live", "https://docker.anyhub.us.kg", "https://dockerhub.icu", "https://docker.awsl9527.cn", "https://docker.chenby.cn", "https://docker.mirrors.ustc.edu.cn", "https://docker.nju.edu.cn", "https://docker.m.daocloud.io", "https://docker.mirrors.aliyuncs.com", "https://docker.mirrors.huaweicloud.com" ], "exec-opts": ["native.cgroupdriver=systemd"], "log-driver": "json-file", "log-opts": { "max-size": "100m" }, "storage-driver": "overlay2" } EOF 

配置文件查看:

重启 Docker 服务:,进一步进行测试:

# 重新加载配置 systemctl daemon-reexec #重启docker服务 systemctl restart docker # 测试 docker run hello-world

Read more

【C++】C++异常

【C++】C++异常

🎬 个人主页:MSTcheng · ZEEKLOG 🌱 代码仓库 :MSTcheng · Gitee 🔥 精选专栏: 《C语言》 《数据结构》 《算法学习》 《C++由浅入深》 💬座右铭:路虽远行则将至,事虽难做则必成! 在前面的文章中,我们已经介绍了C++11的一些新特性。本文将和下一篇一起为大家讲解C++的最后两个重要主题:异常处理和智能指针。 文章目录 * 一、异常的概念及使用 * 1.1异常的概念 * 1.2异常的分类 * 1.3异常的抛出与捕获 * 1.4栈展开 * 1.5 查找匹配的处理代码 * 1.6异常重新抛出 * 1.7异常的安全问题 * 1.8异常规范 * 二、总结 一、异常的概念及使用 1.1异常的概念 异常(Exception)是指在程序执行过程中发生的意外或错误情况,

By Ne0inhk
【C++】STL详解(四)—从零撸出vector,写完我膨胀了

【C++】STL详解(四)—从零撸出vector,写完我膨胀了

坚持用清晰易懂的图解+代码语言,让每个知识点变得简单! 🚀呆头个人主页详情 🌱 呆头个人Gitee代码仓库 📌 呆头详细专栏系列 座右铭:“不患无位,患所以立。” 【C++】STL详解(四)—从零撸出vector,写完我膨胀了 * 摘要 * 目录 * 一、vector模拟实现的四个关键点 * 二、默认成员函数 * 无参构造 * 析构 * operator= * 三、迭代器相关函数 * begin 和 end的iterator / const_iterator * 四、容量大小相关函数 * size 和 capacity * reserve * resize * empty * 五、修改容器内相关函数 * push_back * pop_back * insert * erase * swap * clear * 六、访问容器相关函数

By Ne0inhk
C++ 模板进阶:特化、萃取与可变参数模板

C++ 模板进阶:特化、萃取与可变参数模板

C++ 模板进阶:特化、萃取与可变参数模板 💡 学习目标:掌握模板进阶技术的核心用法,理解模板特化的深层应用、类型萃取的实现原理,以及可变参数模板的灵活使用,提升泛型编程的实战能力。 💡 学习重点:模板特化的进阶场景、类型萃取工具的设计与应用、可变参数模板的展开技巧、折叠表达式的使用方法。 一、模板特化进阶:处理复杂类型场景 💡 模板特化不只是针对单一类型的定制,还能处理指针、引用、数组等复杂类型,实现更精细的类型适配逻辑。 1.1 指针类型的模板特化 通用模板默认处理普通类型,我们可以为指针类型单独编写特化版本,实现指针专属的逻辑。 #include<iostream>#include<string>usingnamespace std;// 通用模板:处理普通类型template<typenameT>classTypeProcessor{public:staticvoidprocess(T data){ cout

By Ne0inhk
C++之模版详解(进阶)

C++之模版详解(进阶)

目录 1. 非类型模板参数 2. 类模板的特化 2.1 函数模板特化 2.2 类模版特化 3. 模板的分离编译 1. 非类型模板参数 模版参数有两种,一种叫类型模版参数,一种叫做非类型模版参数。今天我们来讲讲非类型模版参数。 template <int N> 中的 int N 就是典型的非类型模板参数。这里的 int 是参数的类型,而 N 是参数名,它接收的是一个具体的常量值,而非像普通类型模板参数(如 template <typename T>)那样接收一个 “类型”。 两者核心区别就是: * 类型模板参数:传递 “类型”(如 T

By Ne0inhk