WSL 下的 CentOS 装 Docker
WSL 下的 CentOS 装 Docker
- 卸载旧版本
- 安装前的准备工作
- 1. 安装 yum-utils
- 2. 添加阿里云的 yum 镜像仓库
- 3. 快速生成 Yum 缓存
- 安装Docker
- 启动docker
- 运行 hello-world
- 卸载 Docker 引擎
- 参考资料
卸载旧版本
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
结果显示一堆 No Match for argument: xxx 表示我们没装过 xxx 是干净的。
安装前的准备工作
1. 安装 yum-utils
yum-utils 是一组用于管理 Yum 软件仓库和软件包的实用工具集合。
比如下面要用的 yum-config-manager 就是 yum-utils 中的一个工具。主要用于管理 Yum 软件源配置,可以添加、删除、启用或禁用软件源等操作。
sudo yum install -y yum-utilsLoaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Package yum-utils-1.1.31-54.el7_8.noarch already installed and latest version
Nothing to do # 没啥要做的,表示我之前已经装过了
2. 添加阿里云的 yum 镜像仓库
注意:整个安装过程,只有这一步与官方不同。因为我们要用阿里的镜像仓库,其他步骤都一样。.
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
添加前、后执行 yum repolist 对比查看,多了一个仓库


3. 快速生成 Yum 缓存
当需要频繁安装、更新软件包时,或在新安装的系统中,运行 yum makecache fast 可生成缓存以提高后续操作效率。
yum makecache fast
- makecache:表示创建或更新缓存
- fast:表示快速模式。(可能会跳过一些可能比较耗时的检查,比如检查 GPG 签名等。)
安装Docker
sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
以下是对安装的这些软件包的说明:
| 软件包名称 | 说明 |
|---|---|
| docker-ce | Docker 引擎社区版,是 Docker 容器运行的核心组件,负责创建、运行和管理容器。 |
| docker-ce-cli | Docker 命令行工具,用于与 Docker 引擎进行交互,通过命令行执行各种 Docker 操作,如创建容器、启动容器、管理镜像等。 |
| containerd.io | 一个行业标准的容器运行时,它为 Docker 和其他容器化技术提供底层的容器运行支持,负责管理容器的生命周期、存储、网络等。 |
| docker-buildx-plugin | Docker Buildx 插件,用于构建多架构的 Docker 镜像,允许在不同的平台和架构上构建和推送容器镜像。 |
| docker-compose-plugin | Docker Compose 插件,用于定义和运行多容器的 Docker 应用程序,通过一个 YAML 文件来配置多个容器的服务、网络和存储等,简化了多容器应用的部署和管理。 |
启动docker
sudo systemctl start docker
运行 hello-world
通过运行 hello-world 镜像来验证 Docker Engine 安装是否成功。
sudo docker run hello-world
如果不加 sudo 无法执行 docker 相关命令,说明当前用户可能不在 docker 组里。我们手动加一下:
(docker 组是安装 docker 时自动添加的,用来管理操作 docker 的权限)
# 查看,没有 docker 组
groups
# 将用户名 jerry 添加进 docker 组
sudo usermod -aG docker jerry
# 刷新 docker 组
newgrp docker
# 查看,有 docker 说明就ok了
groups
显示这一堆表示成功
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
c1ec31eb5944: Pull complete
Digest: sha256:53cc4d415d839c98be39331c948609b659ed725170ad2ca8eb36951288f81b75
Status: Downloaded newer image for hello-world:latestHello from Docker!
This message shows that your installation appears to be working correctly.To generate this message, Docker took the following steps:1. The Docker client contacted the Docker daemon.2. The Docker daemon pulled the "hello-world" image from the Docker Hub.(amd64)3. The Docker daemon created a new container from that image which runs theexecutable that produces the output you are currently reading.4. The Docker daemon streamed that output to the Docker client, which sent itto your terminal.To try something more ambitious, you can run an Ubuntu container with:$ docker run -it ubuntu bashShare images, automate workflows, and more with a free Docker ID:https://hub.docker.com/For more examples and ideas, visit:https://docs.docker.com/get-started/
卸载 Docker 引擎
- 卸载 Docker 引擎、命令行界面(CLI)、containerd 和 Docker Compose 软件包。
sudo yum remove docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras
- 残留需要自己手动清理
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd
参考资料
笑虾:Wni11 下 WSL 安装 CentOS
Install Docker Engine on CentOS
相关文章:
WSL 下的 CentOS 装 Docker
WSL 下的 CentOS 装 Docker 卸载旧版本安装前的准备工作1. 安装 yum-utils2. 添加阿里云的 yum 镜像仓库3. 快速生成 Yum 缓存 安装Docker启动docker运行 hello-world卸载 Docker 引擎参考资料 卸载旧版本 sudo yum remove docker \ docker-client \ docker-client-latest \ d…...
v0.dev快速开发
探索v0.dev:次世代开发者之利器 今之技艺日新月异,开发者之工具亦随之进步不辍。v0.dev者,新兴之开发者利器也,迅速引起众多开发者之瞩目。本文将引汝探究v0.dev之基本功能与优势,助汝速速上手,提升开发之…...
python之字符串
创建字符串 s "Hello, World!"常用字符串操作 获取字符串长度 length len(s) print(length) # 输出: 13字符串拼接 s1 "Hello" s2 "World" s3 s1 ", " s2 "!" print(s3) # 输出: Hello, World!重复字符串 s …...
算法打卡 Day28(回溯算法)-组合总数 + 组合总数 Ⅱ+ 电话号码的字母组合
文章目录 Leetcode 17-电话号码的字母组合题目描述解题思路 Leetcode 39-组合总数题目描述解题思路 Leetcode 216-组合总数 Ⅲ题目描述解题思路 Leetcode 17-电话号码的字母组合 题目描述 https://leetcode.cn/problems/letter-combinations-of-a-phone-number/description/ …...
【Hadoop|MapReduce篇】MapReduce概述
1. MapReduce定义 MapReduce是一个分布式运算程序的编程框架,是用户开发“基于Hadoop的数据分析应用”的核心框架。 MapReduce核心功能是将用户编写的业务逻辑代码和自带默认组件整合成一个完整的分布式运算程序,并发运行在一个Hadoop集群上。 2. Map…...
设置Virtualbox虚拟机共享文件夹
由于工作环境的原因,选择Virtualbox的方式安装虚拟操作系统,常用的操作系统为ubuntu,不知道道友是否也曾遇到这样的问题,就是虚拟机和主机进行文件拖拽的时候,会因为手抖造成拖拽失败,虚拟机界面显示大个的…...
从零开始的机器学习之旅
尊敬的读者们,在这个快速发展的数字时代,机器学习无疑已经成为了科技领域的一颗璀璨明星。它如同一把打开未来之门的钥匙,让我们能够窥探到数据背后的无限可能。今天,我将带领大家开启一段从零开始的机器学习之旅,让我…...
开源还是封闭?人工智能的两难选择
这篇文章于 2024 年 7 月 29 日首次出现在 The New Stack 上。人工智能正处于软件行业的完美风暴中,现在马克扎克伯格 (Mark Zuckerberg) 正在呼吁开源 AI。 关于如何控制 AI 的三个强大观点正在发生碰撞: 1 . 所有 AI 都应该是开…...
Prometheus 服务监控
官网:https://prometheus.io Prometheus 是什么 Prometheus 是一个开源的系统监控和报警工具,专注于记录和存储时间序列数据(time-series data)。它最初由 SoundCloud 开发,并已成为 CNCF(云原生计算基金会…...
建模杂谈系列252 规则的串行改并行
说明 提到规则,还是需要看一眼RETE算法: Rete算法是一种用于高效处理基于规则的系统中的模式匹配问题的算法,广泛应用于专家系统、推理引擎和生产系统。它的设计目的是在大量规则和数据的组合中快速找到满足特定规则条件的模式。 Rete算法…...
0.ffmpeg面向对象oopc
因为查rtsp相关问题,接触了下ffmpeg源码,发现它和linux内核一样,虽然都是c写的,但是都是面向对象的思想,c的面向对象称之为oopc。 这让我想起来一件好玩的事,有些搞linux内核驱动的只会c的开发人员不知道l…...
KDD2024参会笔记-Day1
知乎想法:链接 听的第一场汇报:RAG Meeting LLMs 综述论文:https://arxiv.org/pdf/2405.06211 PPT:https://advanced-recommender-systems.github.io/RAG-Meets-LLMs/2024-KDD-RAG-Meets-LLM-tutorial-Part1.pdf 检索࿱…...
Java操作Elasticsearch的实用指南
Java操作Elasticsearch的实用指南 一、创建索引二、增删改查 一、创建索引 在ElasticSearch中索引相当于mysql中的表,mapping相当于表结构,所以第一步我们要先创建索引。 假设我们有一张文章表的数据需要同步到ElasticSearch,首先需要根据数据库表创建…...
数据库系统 第42节 数据库索引简介
数据库索引是数据库表中一个或多个列的数据结构,用于加快数据检索速度。除了基础的B-Tree索引,其他类型的索引针对特定的数据类型和查询模式提供了优化。以下是几种不同类型的索引及其使用场景的详细说明和示例代码。 1. 位图索引 (Bitmap Index) 位图…...
C++11 --- 智能指针
序言 在使用 C / C 进行编程时,许多场景都需要我们在堆上申请空间,堆内存的申请和释放都需要我们自己进行手动管理。这就存在容易造成堆内存泄露(忘记释放),二次释放,程序发生异常时内存泄露等问题…...
C#顺序万年历自写的求余函数与周位移算法
static int 返回月的天数(int 年, int 月){return (月 2 ?(((年 % 4 0 && 年 % 100 > 0) || 年 % 400 0) ? 29 : 28) :(((月 < 7 && 月 % 2 > 0) || (月 > 7 && 月 % 2 0)) ? 31 : 30));}static int 返回年总天数(int 年, int 标 …...
【Java并发编程一】八千字详解多线程
目录 多线程基础 1.线程和进程 线程是什么? 为啥要有线程? 进程和线程的区别? Java 的线程 和 操作系统线程 的关系 使用jconsole观察线程 2.创建线程的多种方式 3.Thread类及其常见方法 Thread类的常见构造方法 Thread类的常见属性…...
CentOS 8FTP服务器
FTP(文件传输协议)是一种客户端-服务器网络协议,允许用户在远程计算机之间传输文件。这里有很多可用于Linux的开源FTP服务软件,最流行最常用的FTP服务软件有 PureFTPd, ProFTPD, 和 vsftpd。在本教程中,我们将在CentOS…...
C++ | Leetcode C++题解之第385题迷你语法分析器
题目: 题解: class Solution { public:NestedInteger deserialize(string s) {if (s[0] ! [) {return NestedInteger(stoi(s));}stack<NestedInteger> st;int num 0;bool negative false;for (int i 0; i < s.size(); i) {char c s[i];if …...
【软件设计师真题】第一大题---数据流图设计
解答数据流图的题目关键在于细心。 考试时一定要仔细阅读题目说明和给出的流程图。另外,解题时要懂得将说明和流程图进行对照,将父图和子图进行对照,切忌按照常识来猜测。同时应按照一定顺序考虑问题,以防遗漏,比如可以…...
Go Context 取消信号传播机制剖析
Go Context 取消信号传播机制剖析 在并发编程中,如何优雅地控制协程的生命周期是一个关键问题。Go语言通过Context机制提供了一种统一的取消信号传播方式,使得跨协程、跨层级的任务取消变得简单高效。本文将深入剖析Context的取消信号传播机制ÿ…...
别再只会用AT指令了!用GD32F103驱动ESP8266实现MQTT连接阿里云(附完整源码)
从AT指令到MQTT协议:GD32F103ESP8266直连阿里云物联网平台实战 在物联网设备开发中,ESP8266作为性价比极高的Wi-Fi模块,常被用于实现设备联网功能。大多数开发者对它的认知停留在AT指令操作层面,通过串口发送简单的AT命令实现TCP连…...
终极指南:如何使用Python实现同花顺自动化程序交易
终极指南:如何使用Python实现同花顺自动化程序交易 【免费下载链接】jqktrader 同花顺自动程序化交易 项目地址: https://gitcode.com/gh_mirrors/jq/jqktrader 在量化投资领域,自动化交易已成为专业投资者的标准配置。本文将详细介绍如何利用jqk…...
视频修复终极指南:如何用UNTRUNC拯救你的损坏视频文件
视频修复终极指南:如何用UNTRUNC拯救你的损坏视频文件 【免费下载链接】untrunc Restore a damaged (truncated) mp4, m4v, mov, 3gp video. Provided you have a similar not broken video. 项目地址: https://gitcode.com/gh_mirrors/unt/untrunc 还记得那…...
分子对接盒子参数智能生成:GetBox-PyMOL-Plugin蛋白质结构分析专业指南
分子对接盒子参数智能生成:GetBox-PyMOL-Plugin蛋白质结构分析专业指南 【免费下载链接】GetBox-PyMOL-Plugin A PyMOL Plugin for calculating docking box for LeDock, AutoDock and AutoDock Vina. 项目地址: https://gitcode.com/gh_mirrors/ge/GetBox-PyMOL-…...
Deep-Live-Cam性能优化指南:从环境配置到实时换脸全流程解决方案
Deep-Live-Cam性能优化指南:从环境配置到实时换脸全流程解决方案 【免费下载链接】Deep-Live-Cam real time face swap and one-click video deepfake with only a single image 项目地址: https://gitcode.com/GitHub_Trending/de/Deep-Live-Cam Deep-Live-…...
TouchGal:3个关键功能让你成为真正的Galgame收藏家
TouchGal:3个关键功能让你成为真正的Galgame收藏家 【免费下载链接】kun-touchgal-next TouchGAL是立足于分享快乐的一站式Galgame文化社区, 为Gal爱好者提供一片净土! 项目地址: https://gitcode.com/gh_mirrors/ku/kun-touchgal-next 你是否曾为寻找心仪的…...
Janus-Pro-7B开发者案例:基于Gradio API构建私有AI内容中台
Janus-Pro-7B开发者案例:基于Gradio API构建私有AI内容中台 1. 项目概述 Janus-Pro-7B是DeepSeek发布的一款统一多模态理解与生成模型,它通过创新的架构设计解决了传统模型在理解与生成任务上的冲突问题。该模型支持图像问答、OCR识别、图表分析等理解…...
霜儿-汉服-造相Z-Turbo作品集:看看AI能生成多美的汉服少女图
霜儿-汉服-造相Z-Turbo作品集:看看AI能生成多美的汉服少女图 1. 惊艳开篇:AI汉服艺术的魅力 当传统汉服遇上现代AI技术,会碰撞出怎样的火花?霜儿-汉服-造相Z-Turbo给出了令人惊叹的答案。这个基于Xinference部署的文生图模型服务…...
90% 的开发者都在错误理解 async/await:协程本质与高并发实战指南
90% 的开发者都在错误理解 async/await:协程本质与高并发实战指南 很多人在第一次写 async def await 的时候,心里都暗暗期待:这下代码应该变快了吧? 结果写完一测,单个接口的响应时间和以前同步写法几乎一模一样&…...
