开发环境搭建-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 权限

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

71-《颠茄》

颠茄 颠茄,别名:野山茄、美女草、别拉多娜草,拉丁文名:Atropa belladonna L.是双子叶植物纲、茄科、颠茄属多年生草本,或因栽培为一年生,根粗壮,圆柱形。茎下部单一,带紫色&#xff…

2025 = 1^3 + 2^3 + 3^3 + 4^3 + 5^3 + 6^3 + 7^3 + 8^3 + 9^3

【算法代码】 #include <bits/stdc.h> using namespace std;int year2025; int main() {cout<<year<<" ";int i1;while(year) {cout<<i<<"^3";if(i<9) cout<<" ";year-pow(i,3);i;}return 0; }/* 202…

三天急速通关JavaWeb基础知识:Day 1 后端基础知识

三天急速通关JavaWeb基础知识&#xff1a;Day 1 后端基础知识 0 文章说明1 Http1.1 介绍1.2 通信过程1.3 报文 Message1.3.1 请求报文 Request Message1.3.2 响应报文 Response Message 2 XML2.1 介绍2.2 利用Java解析XML 3 Tomcat3.1 介绍3.2 Tomcat的安装与配置3.3 Tomcat的项…

Baklib揭示内容中台与人工智能技术的创新协同效应

内容概要 在当今信息爆炸的时代&#xff0c;内容的高效生产与分发已成为各行业竞争的关键。内容中台与人工智能技术的结合&#xff0c;为企业提供了一种新颖的解决方案&#xff0c;使得内容创造的流程更加智能化和高效化。 内容中台作为信息流动的核心&#xff0c;能够集中管…

Git进阶之旅:Git 配置信息 Config

Git 配置级别&#xff1a; 仓库级别&#xff1a;local [ 优先级最高 ]用户级别&#xff1a;global [ 优先级次之 ]系统级别&#xff1a;system [ 优先级最低 ] 配置文件位置&#xff1a; git 仓库级别对应的配置文件是当前仓库下的 .git/configgit 用户级别对应的配置文件时用…

Java中的泛型

泛型&#xff1a;是DK5中引入的特性&#xff0c;可以在编译阶段约束操作的数据类型&#xff0c;并进行检查。 泛型的格式&#xff1a;<数据类型> 注意&#xff1a;泛型只能支持引用数据类型。 没有泛型如何储存数据&#xff1a; 弊端&#xff1a;多态不能访问子类的特…

C++/stack_queue

目录 1.stack 1.1stack的介绍 1.2stack的使用 练习题&#xff1a; 1.3stack的模拟实现 2.queue的介绍和使用 2.1queue的介绍 2.2queue的使用 2.3queue的模拟实现 3.priority_queue的介绍和使用 3.1priority_queue的介绍 3.2priority_queue的使用 欢迎 1.stack 1.1stack…

mysql.sock.lock 导致mysql重启失败

背景 今天公司物业断电&#xff0c;导致机房服务器停电宕机&#xff0c;所有的服务都得重启。本着mysql实例都做了服务自启动&#xff0c;所以没有太担心影响开发的日常工作。但是今天一上班开发就找来&#xff0c;各种服务都没起来有问题&#xff0c;数据库连不上。马上登陆数…

Hive:Hive Shell技巧

在终端命令窗口不能直接执行select,creat等HQL命令,需要先进入hive之后才能执行,比较麻烦,但是如果使用Hive Shell就可以直接执行 在终端只执行一次Hive命令 -e 参数, "execute"&#xff08;执行&#xff09;,使用-e参数后会在执行完Hive的命令后退出Hive 使用场景:…

C++:PTA L2-003 月饼

月饼是中国人在中秋佳节时吃的一种传统食品&#xff0c;不同地区有许多不同风味的月饼。现给定所有种类月饼的库存量、总售价、以及市场的最大需求量&#xff0c;请你计算可以获得的最大收益是多少。 注意&#xff1a;销售时允许取出一部分库存。样例给出的情形是这样的&#…

力扣面试150 快乐数 循环链表找环 链表抽象 哈希

Problem: 202. 快乐数 &#x1f469;‍&#x1f3eb; 参考题解 Code public class Solution {public int squareSum(int n) {int sum 0;while(n > 0){int digit n % 10;sum digit * digit;n / 10;}return sum;}public boolean isHappy(int n) {int slow n, fast squa…

春晚舞台上的人形机器人:科技与文化的奇妙融合

文章目录 人形机器人Unitree H1的“硬核”实力传统文化与现代科技的创新融合网友热议与文化共鸣未来展望&#xff1a;科技与文化的更多可能结语 2025 年央视春晚的舞台&#xff0c;无疑是全球华人目光聚焦的焦点。就在这个盛大的舞台上&#xff0c;一场名为《秧BOT》的创意融合…

架构技能(六):软件设计(下)

我们知道&#xff0c;软件设计包括软件的整体架构设计和模块的详细设计。 在上一篇文章&#xff08;见 《架构技能&#xff08;五&#xff09;&#xff1a;软件设计&#xff08;上&#xff09;》&#xff09;谈了软件的整体架构设计&#xff0c;今天聊一下模块的详细设计。 模…

2025年美赛B题-结合Logistic阻滞增长模型和SIR传染病模型研究旅游可持续性-成品论文

模型设计思路与创新点&#xff1a; 建模的时候应该先确定我们需要建立什么类的模型&#xff1f;优化类还是统计类&#xff1f;这个题需要大量的数据分析&#xff0c;因此我们可以建立一个统计学模型。 统计学建模思路&#xff1a;观察规律&#xff0c;建立模型&#xff0c;参…

FireFox | Google Chrome | Microsoft Edge 禁用更新 final版

之前的方式要么失效&#xff0c;要么对设备有要求&#xff0c;这次梳理一下对设备、环境几乎没有要求的通用方式&#xff0c;universal & final 版。 1.Firefox 方式 FireFox火狐浏览器企业策略禁止更新_火狐浏览器禁止更新-CSDN博客 这应该是目前最好用的方式。火狐也…

关联传播和 Python 和 Scikit-learn 实现

文章目录 一、说明二、什么是 Affinity Propagation。2.1 先说Affinity 传播的工作原理2.2 更多细节2.3 传播两种类型的消息2.4 计算责任和可用性的分数2.4.1 责任2.4.2 可用性分解2.4.3 更新分数&#xff1a;集群是如何形成的2.4.4 估计集群本身的数量。 三、亲和力传播的一些…

使用 postman 测试思源笔记接口

思源笔记 API 权鉴 官方文档-中文&#xff1a;https://github.com/siyuan-note/siyuan/blob/master/API_zh_CN.md 权鉴相关介绍截图&#xff1a; 对应的xxx&#xff0c;在软件中查看 如上图&#xff1a;在每次发送 API 请求时&#xff0c;需要在 Header 中添加 以下键值对&a…

万物皆有联系:驼鸟和布什

布什&#xff1f;一块布十块钱吗&#xff1f;不是&#xff0c;大家都知道&#xff0c;美国有两个总统&#xff0c;叫老布什和小布什&#xff0c;因为两个布什总统&#xff08;父子俩&#xff09;&#xff0c;大家就这么叫来着&#xff0c;目的是为了好区分。 布什总统的布什&a…

C++ ——— 仿函数

目录 何为仿函数 仿函数和模板的配合使用 何为仿函数 代码演示&#xff1a; class Add { public:int operator()(int x, int y){return x y;} }; 这是一个 Add 类&#xff0c;类里面有一个公有成员函数重载&#xff0c;重载的是括号 那么调用的时候&#xff1a; Add ad…

Charles 4.6.7 浏览器网络调试指南:流量过滤与分析(六)

1. 概述 在网络调试和优化过程中&#xff0c;Charles 不仅可以实现简单的网络抓包操作&#xff0c;还支持更高级的抓包技巧和流量分析功能。这些功能能够帮助开发者深入挖掘网络请求的细节&#xff0c;为复杂问题提供有效的解决方案。本文将重点讲解 Charles 的过滤规则、自定…