开发环境搭建-4:WSL 配置 docker 运行环境

在 WSL 环境中构建:WSL2 (2.3.26.0) + Oracle Linux 8.7 官方镜像

基本概念说明

容器技术

利用 Linux 系统的 文件系统(UnionFS)、命名空间(namespace)、权限管理(cgroup),虚拟出一个独立于主系统的文件系统(文件、网络、权限与主机相互独立),由于 Linux 系统一切均基于文件,因此这样就可实现多个虚拟环境在同一主机上的运行

  1. 容器技术 VS 虚拟机 VS 实机运行
    1. 实机运行 = 软件直接在硬件上运行
      直接运行在硬件上效率高,但灵活度太低、硬件成本高
    2. 虚拟机 = 利用计算机硬件的功能,虚拟化一个完整的系统
      安全,虚拟系统支持的种类多,但虚拟系统负责运行效率低
    3. 容器技术 = 共用系统底层,利用系统实现不同容器、容器与主机间的隔离
      运行效率高、灵活性高
  2. 重要概念
    1. 容器 Container:每个独立划分的空间,里边包含了独立的文件系统,称为容器,镜像在其中运行
    2. 源 Registry:管理镜像的仓库
    3. 镜像 Image:可以将现有的容器打包 / 使用构建工具创建镜像,便于分发部署
  3. 容器技术的未来
    1. 容器进一步发展,从单一服务器扩展到整个集群、多个集群都使用容器构建系统,此时 docker 就力不从心了,需要更高级的专门系统,进行集群级的容器管理
      --> 容器编排系统,如 k8s,OpenShift 等
      参考资料:https://www.thebyte.com.cn/architecture/container.html

容器运行时

粗略的来说,容器运行时 = 控制容器的管理软件 + 提供外界管理的界面(命令行、API 等)
常见的容器运行时有:

  1. docker:容器的创始者,应用广泛,但运行时需要 root 权限,不够安全
  2. podman:redhat 改进的容器运行时,是 centos 预装的运行时,无需 root 权限更安全
  3. k8s:实际上是容器编排软件(容器编排 = 利用计算机自动化实现集群级大量容器的管理)

这里选用比较常见的 docker 运行时

安装 docker 流程

参考资料(清华 docker-ce 源):https://mirror.tuna.tsinghua.edu.cn/help/docker-ce/

清理冲突软件、旧版软件

容器运行时不能相互共存。即:如果要安装 docker,则需要卸载 podman 等其他运行时
同一运行时的不同版本不能互存。如:如果要安装新版 docker,则需要删除原来存在的旧版

卸载冲突软件(以 podman 为例)

  1. 查询是否安装了 podman 相关软件

    sudo rpm -qa | grep podman
    

    若指令执行有相关输出,则这些软件是 podman 相关的软件

  2. 卸载 podman(如果上面查询到安装了相关软件)

    1. 将 podman 中所有容器停止

      podman stop $(podman ps -aq)
      
    2. 将 podman 中所有容器删除

      podman rm -f $(podman ps -aq)
      
    3. 将 podman 中所有镜像删除

      podman rmi $(podman images -q)
      
    4. 删除 podman 软件及工具链

      sudo dnf uninstall -y podman podman-docker buildah skopeo
      

卸载原版docker

如果原来安装过 docker,需要将原版 docker 先卸载
yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

安装docker

配置 docker 仓库

这里第 3 步是关键,将原来的官方地址替换为清华源地址,实现 docker 软件安装时的加速
sudo yum install -y yum-utils
# 配置原版仓库地址
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 替换为清华源地址
sudo sed -i 's+https://download.docker.com+https://mirrors.tuna.tsinghua.edu.cn/docker-ce+' /etc/yum.repos.d/docker-ce.repo

安装 docker

yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

配置 docker 服务

注意:docker 相关指令,都需要 root 权限。root 权限配置可参考我的文章《配置 WSL (类 centos 的 oracle linux 官方镜像)》

安装完成后,docker 服务默认未启动、且开机不自启,这里设置为开机启动、并直接启动

# 设置 docker 开机启动
sudo systemctl enable dockerd

# 启动 docker 服务
sudo systemctl start docker

若之后想控制 docker 的启动/停止/重启,设置/取消开机自启,可执行以下指令

# 启动/停止/重启 docker
# 一般修改 docker 配置后,都需要重启 docker 服务使配置生效
sudo systemctl start/stop/restart docker

# 设置/取消 docker 开机自启
sudo systemctl enable/disable docker

配置 docker 国内镜像仓库加速

  • docker 安装加速(前面介绍的):docker 软件本身安装的加速
  • docker 镜像仓库加速(这一节介绍的):使用 docker 下载容器镜像时的加速

通用配置如下
参考文章:https://blog.csdn.net/liuxin_hello/article/details/139654089

# 1. 打开 docker 配置文件
sudo vim /etc/docker/daemon.json

# 在配置文件中添加以下内容
{  
  "registry-mirrors": [  
    "https://registry.docker-cn.com",  
    "http://hub-mirror.c.163.com",  
    "https://docker.mirrors.ustc.edu.cn"  
    // 可以继续添加其他镜像源地址....
  ]  
}

这里配置 daocloud.io 的加速
daocloud 镜像加速地址详情:https://github.com/DaoCloud/public-image-mirror
!!!感谢 dcaocloud 等国内公益镜像加速服务提供者!!!


# 1. 打开 docker 配置文件
sudo vim /etc/docker/daemon.json

# 在配置文件中添加以下内容
{  
  "registry-mirrors": [  
    "https://docker.daocloud.io",
    "https://registry.docker-cn.com",  
    "http://hub-mirror.c.163.com",  
    "https://docker.mirrors.ustc.edu.cn"  
  ]  
}

# 2. 保存文件

# 3. 重启docker 服务
sudo systemctl restart docker

注意:

  1. 修改配置文件后,需要重启 docker 服务
  2. 修改配置文件、重启 docker 服务,都需要root 权限

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/962187.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【2024年华为OD机试】(B卷,100分)- 热点网站统计(Java JS PythonC/C++)

一、问题描述 题目描述 企业路由器的统计页面需要动态统计公司访问最多的网页URL的Top N。设计一个算法,能够高效动态统计Top N的页面。 输入描述 每一行都是一个URL或一个数字: 如果是URL,代表一段时间内的网页访问。如果是数字N&#…

Git图形化工具【lazygit】

简要介绍一下偶然发现的Git图形化工具——「lazygit」 概述 Lazygit 是一个用 Go 语言编写的 Git 命令行界面(TUI)工具,它让 Git 操作变得更加直观和高效。 Github地址:https://github.com/jesseduffield/lazygit 主要特点 主要…

单细胞-第五节 多样本数据分析,打分R包AUCell

文件在单细胞\5_GC_py\1_single_cell\3.AUCell.Rmd 1.基因 rm(list = ls()) load("g.Rdata")2.AUCell https://www.ncbi.nlm.nih.gov/pmc/articles/PMC9897923 IF: NA NA NA用这个文章里的方法,将单细胞亚群的marker基因与ros相关基因取交集,用作AUCell的基因集…

单片机基础模块学习——超声波传感器

一、超声波原理 左边发射超声波信号,右边接收超声波信号 左边的芯片用来处理超声波发射信号,中间的芯片用来处理接收的超声波信号 二、超声波原理图 T——transmit 发送R——Recieve 接收 U18芯片对输入的N_A1信号进行放大,然后输入给超声…

BWM 世界模型

DGX AGX Ominiverse With Cosmos 功能 1w 张 H100 训练了 3个月 使用 Ray 串流 数据 数据准备 处理 pipeline 数组组成 真实世界的物理数据 训练 1、使用 L1 损失,最小化 输入和重构视频之间的像素级差异 以及基于 VGG19 的一个特征感知损失 2、使用光流的损…

【深度分析】DeepSeek大模型技术解析:从架构到应用的全面探索

深度与创新:AI领域的革新者 DeepSeek,这个由幻方量化创立的人工智能公司推出的一系列AI模型,不仅在技术架构上展现出了前所未有的突破,更在应用领域中开启了无限可能的大门。从其混合专家架构(MoE)到多头潜…

NLP深度学习 DAY4:Word2Vec详解:两种模式(CBOW与Skip-gram)

用稀疏向量表示文本,即所谓的词袋模型在 NLP 有着悠久的历史。正如上文中介绍的,早在 2001年就开始使用密集向量表示词或词嵌入。Mikolov等人在2013年提出的创新技术是通过去除隐藏层,逼近目标,进而使这些单词嵌入的训练更加高效。…

【Rust自学】17.2. 使用trait对象来存储不同值的类型

喜欢的话别忘了点赞、收藏加关注哦(加关注即可阅读全文),对接下来的教程有兴趣的可以关注专栏。谢谢喵!(・ω・) 17.2.1. 需求 这篇文章以一个例子来介绍如何在Rust中使用trait对象来存储不同值的类型。 …

数据分析系列--⑤RapidMiner进行关联分析(中文数据案例)

一、数据集 二、数据预处理 1.读取数据、拆分、重命名 2.数据预处理 三、关联分析 四、结论 一、数据集 点击下载数据集shopping_basket.xlsx ,这个数据集专门使用中文数据来进行分析. 二、数据预处理 1.读取数据、拆分、重命名 2.数据预处理 三、关联分析 四、结论 Ok,E…

前端开发之jsencrypt加密解密的使用方法和使用示例

目录 RSA密钥生成选项简介 jsencrypt 使用教程 一、安装 jsencrypt 二、使用 jsencrypt 进行加密和解密 1. 创建密钥对 2. 加密数据 3. 解密数据 三、实际应用示例 加密数据并存储到 localStorage 中: 从 localStorage 中读取加密数据并解密: …

Harmony Next 跨平台开发入门

ArkUI-X 官方介绍 官方文档:https://gitee.com/arkui-x/docs/tree/master/zh-cn ArkUI跨平台框架(ArkUI-X)进一步将ArkUI开发框架扩展到了多个OS平台:目前支持OpenHarmony、Android、 iOS,后续会逐步增加更多平台支持。开发者基于一套主代码…

从崩溃难题看 C 标准库与 Rust:线程安全问题引发的深度思考

在软件开发的世界里,每一次技术的变革和尝试都伴随着未知的挑战。EdgeDB 团队在将部分网络 I/O 代码从 Python 迁移到 Rust 的过程中,就遭遇了一场棘手的问题,这个问题不仅暴露了 C 标准库的线程安全隐患,也让我们对 Rust 的 “安…

SQL注入漏洞之高阶手法 宽字节注入以及编码解释 以及堆叠注入原理说明

目录 宽字节注入 编码区分 原理 函数 转译符号解释 注意 绕过方式详解 堆叠【Stack】注入攻击 注入语句 宽字节注入 在说宽字节注入之前 我们需要知道编码相关的知识点,这个有助于搞定什么是宽字节注入 分清楚是ascii码是什么宽字节注入代码里面加入了adds…

DeepSeek r1本地安装全指南

环境基本要求 硬件配置 需要本地跑模型,兼顾质量、性能、速度以及满足日常开发需要,我们需要准备以下硬件: CPU:I9内存:128GB硬盘:3-4TB 最新SSD,C盘确保有400GB,其它都可划成D盘…

最新版仿天涯论坛系统源码带后台

亲测正常使用版,代码精简,压缩包也小,程序运行速度更快,效率更高,服务器抗攻击能力更强 功能方面: 仿天涯论坛模板的免费论坛系统在功能方面也很强大!程序本身包含一个PC版网站和一个手机版网站 支持打包…

PostgreSQL 数据备份与恢复:掌握 pg_dump 和 pg_restore 的最佳实践

title: PostgreSQL 数据备份与恢复:掌握 pg_dump 和 pg_restore 的最佳实践 date: 2025/1/28 updated: 2025/1/28 author: cmdragon excerpt: 在数据库管理中,备份与恢复是确保数据安全和业务连续性的关键措施。PostgreSQL 提供了一系列工具,以便于数据库管理员对数据进行…

C++ 写一个简单的加减法计算器

************* C topic:结构 ************* Structure is a very intersting issue. I really dont like concepts as it is boring. I would like to cases instead. If I want to learn something, donot hesitate to make shits. Like building a house. Wh…

我的2024年博客总结(在工作、博客和生活中找到自己的生活节奏)

文章目录 ⭐前言⭐工作和博客的关联⭐找到自己的生活节奏⭐结束 ⭐前言 大家好,我是yma16,本文主要写2024年博客总结,关于在工作、博客和生活中找到自己的生活节奏。 node系列往期文章 node_windows环境变量配置 node_npm发布包 linux_配置…

【视频+图文详解】HTML基础1-html和css介绍、上网原理

图文详解 html介绍 概念:html是超文本标记语言的缩写,其英文全称为HyperText Markup Language,是用来搭建网站结构的语言,比如网页上的文字,按钮,图片,视频等。html的版本分为1.0、2.0、3.0、…