banner
NEWS LETTER

Linux

Scroll down

常见的Linux操作系统

你可曾知道Linux的魅力或威力来自哪里?那就是,由于众多发行版百花齐放,Linux的阵营日益壮大,每一款发行版都拥有一大批用户,开发者自愿为相关项目投入精力。Linux发行版可谓是形形色色,它们旨在满足每一种能想得到的需求。本文就是为了简述某一款发行版为何存在、该发行版的目标用户是哪些,以及它与其他发行版相比有什么样的特殊功能。

1. Debian

Debian运行起来极其稳定,这使得它非常适合用于服务器。Debian平时维护三套正式的软件库和一套非免费软件库,这给另外几款发行版(比如Ubuntu和Kali等)带来了灵感。Debian这款操作系统派生出了多个Linux发行版。它有37500多个软件包,这方面唯一胜过Debian的其他发行版只有Gentoo。Debian使用apt或aptitude来安装和更新软件。

Debian这款操作系统无疑并不适合新手用户,而是适合系统管理员和高级用户。Debian支持如今的大多数架构(处理器)。

下载Debian ISO映像文件:http://dd.ma/BnNdplbF

附有屏幕截图的Debian安装:《Debian 7.0”Wheezy”安装指南

img

Debian Linux

2. Gentoo

与Debian一样,Gentoo这款操作系统也包含数量众多的软件包。Gentoo并非以预编译的形式出现,而是每次需要针对每个系统进行编译。连Gentoo社区都觉得Gentoo安装和使用起来很困难;不过它被认为是最佳学习对象,可以进而了解Linux操作系统的内部运作原理。提到Gentoo总有人这么说:”如果你要学用Linux发行版,那就学用该发行版吧;如果你学会了Gentoo,也就学会了Linux。”Gentoo使用portage来安装和更新软件。

Gentoo这款操作系统适合对Linux已经完全驾轻就熟的那些用户。

下载和安装Gentoo:http://dd.ma/Y0dT3sAQ

img

Gentoo Linux

3. Ubuntu

Ubuntu是Debian的一款衍生版,也是当今最受欢迎的免费操作系统。Ubuntu侧重于它在这个市场的应用,在服务器、云计算、甚至一些运行Ubuntu Linux的移动设备上很常见。作为Debian Gnu Linux的一款衍生版,Ubuntu的进程、外观和感觉大多数仍然与Debian一样。它使用apt软件管理工具来安装和更新软件。它也是如今市面上用起来最容易的发行版之一。Ubuntu使用基于apt的程序包管理器。

Ubuntu是新手用户肯定爱不释手的一款操作系统。

下载Ubuntu ISO映像文件:http://dd.ma/8ek7k9OR

附有屏幕截图的Ubuntu安装:《Ubuntu 13.04”Raring Ringtail”安装指南

img

Ubuntu Linux

4. Damn Vulnerable Linux

当然,大多数人可能对这款发行版前所未闻,不过该发行版在本文中还是占有一席之地。那么,它有何过人之处呢? Damn Vulnerable Linux恰如其名:其字面意思就是”该死的易受攻击的Linux”。Vulnerable Linux(DVL)根本不是一般意义上的优秀的Linux发行版。它有意捆绑了坏的、配置不当的、过时的、很容易被不法分子攻击的软件。

它的目的在于借机训练Linux管理员。还有什么比给Linux管理员一款坏的发行版去排解问题来得更管用的吗?面对Apache、MySQL、PHP、FTP和SSH等比较旧或破的版本,接受训练的管理员够有得忙了。

Damn Vulnerable Linux堪称旨在训练管理员的实验室。

下载Damn Vulnerable Linux(DVL)ISO映像文件:DVL_1.5_Infectious_Disease.iso

img

Damn Vulnerable Linux

5. 红帽企业级Linux

这是第一款面向商业市场的Linux发行版。它有服务器版本,支持众多处理器架构,包括x86和x86_64。红帽公司通过课程红帽认证系统管理员/红帽认证工程师(RHCSA/RHCE),对系统管理员进行培训和认证。就全球市场而言,总利润中80%来自支持,另外20%来自培训和认证,不过在印度不是这样。

在印度,红帽的利润中80%来自认证和培训,只有20%来自支持。而Fedora是个平台,而不是开发新产品或新应用程序的测试环境;一旦成为稳定版,就与红帽企业级Linux捆绑在一起,包括支持。红帽提供了非常多的稳定版应用程序,但是众所周知的缺点是,把太多旧程序包打包起来,支持成本确实相当高。不过,如果安全是关注的首要问题,那么红帽企业级Linux的确是款完美的发行版,它使用YUM程序包管理器。

红帽企业级Linux是系统管理员的第一选择,它有众多的程序包,还有非常到位的支持。

由于该发行版是商业化产品,所以不是免费的。不过,你可以下载用于教学用途的测试版。

下载红帽企业级Linux测试版DVD ISO映像文件:RedHat Enterprise Linux(测试版

附有屏幕截图的RHEL 6安装:《RHEL 6安装指南

补充说明:通常认为,开发了该发行版的Marc Ewin将该产品命名为红帽,因为他丢失了似乎很心爱的那顶红色帽子,帽子是他爷爷在他过生日时送的礼物。

img

红帽企业级Linux

6. CentOS

CentOS是一款企业级Linux发行版,它使用红帽企业级Linux中的免费源代码重新构建而成。这款重构版完全去掉了注册商标以及Binary程序包方面一个非常细微的变化。有些人不想支付一大笔钱,又能领略红帽企业级Linux;对他们来说,CentOS值得一试。此外,CentOS的外观和行为似乎与母发行版红帽企业级Linux如出一辙。 CentOS使用YUM来管理软件包。

非常稳定的程序包;谁要是想在桌面端测试一下服务器的运作原理,都应该试试这款操作系统。

下载CentOS 6.4 DVD ISO映像文件:http://dd.ma/BNbpqFB8

附有屏幕截图的CentOS 6.4安装:《CentOS 6.4安装指南

img

CentOS Linux

7. Fedora

小巧的Fedora适合那些人:想尝试最先进的技术,等不及程序的稳定版出来。其实,Fedora就是红帽公司的一个测试平台;产品在成为企业级发行版之前,在该平台上进行开发和测试。Fedora是一款非常好的发行版,有庞大的用户论坛,软件库中还有为数不少的软件包。Fedora同样使用YUM来管理软件包。

下载Fedora 18(Spherical Cow)DVD ISO映像文件:http://dd.ma/CyBshk4Q

附有屏幕截图的Fedora 18(Spherical Cow)安装:《Fedora 18(Spherical Cow)安装指南

img

Fedora Linux

8. Kali Linux

Kali Linux是Debian的一款衍生版。Kali旨在用于渗透测试。它大概在三个月前才发行。Kali的前身是Backtrack。用于Debian的所有Binary软件包都可以安装到Kali Linux上,而Kali的魅力或威力就来自于此。此外,支持Debian的用户论坛为Kali加分不少。Kali随带许多的渗透测试工具,无论是Wifi、数据库还是其他任何工具,都设计成立马可以使用。Kali使用APT来管理软件包。

毫无疑问,Kali Linux是一款渗透测试工具,或者是文明黑客(我不想谈论恶意黑客)青睐的操作系统。

下载Kali Linux DVD ISO映像文件:Kali Linux 6

img

Kali Linux

9. Arch Linux

Arch是一款采用滚动发行方式的操作系统:只要安装一次就够了;每当发行了某个新版本,就可以升级发行版,不需要重新安装。Pacman是Arch Linux的软件包管理器。Arch Linux既支持X86处理器架构,又支持X86_64架构,安装程序可以从光盘或U盘来运行。Arch旨在从开发者的角度而不是从用户的角度做到力求简单。Arch配置和安装起来超容易。它真是一款面向高手的发行版,让你可以了解Linux系统的每一个细枝末节。

下载Arch Linux ISO映像文件:http://dd.ma/kIkgJGD1

img

Arch Linux

10. OpenSuse

OpenSuse这款Linux发行版是免费的,并不供商业用途使用,仍然供个人使用。OpenSuse的真正竞争对手是红帽企业级Linux。它使用Yast来管理软件包。有了Yast,使用和管理服务器应用程序就非常容易。此外,Yast安装向导程序可以配置电子邮件服务器、LDAP服务器、文件服务器或Web服务器,没有任何不必要的麻烦。它随带snapper快照管理工具,因而可以恢复或使用旧版的文件、更新和配置。由于让滚动发行版本成为可能的Tumbleweed,可将已安装的操作系统更新到最新版本,不需要任何的新发行版。

SUSE在管理员当中的名气更大,因为它有Yast以及让系统管理员能够自动管理任务的其他此类应用程序,同样水准的其他发行版没有这项功能。

下载OpenSuse 12.3 DVD ISO映像文件:http://dd.ma/gSerotMi

附有屏幕截图的OpenSuse 12.3安装:《OpenSuse 12.3安装指南

img

OpenSuse Linux

本文不是什么大盘点。市面上有好几百款发行版,每款发行版在某个方面都与众不同。不可能在此全部罗列,本文只罗列了十款最常见的Linux发行版(世界上只有两种人,一种是懂二进制的,另一种是不懂二进制的)。请宣传Linux的魅力或威力。

Linux基础命令

Linux系统基础命令大全及详解具体如下:

1.文件目录类命令

  • pwd指令:显示当前工作目录的绝对路径[^1^]。使用pwd -P可以显示出实际路径而非使用连接(link)路径[^1^]。
  • cd指令:切换到指定目录[^1^]。例如,cd ~cd 返回自己的家目录,cd ..回到当前目录的上一级目录[^1^]。
  • ls指令:以列表方式显示信息[^1^]。常用选项包括-a(显示所有文件包括隐藏文件),-l(详细列表显示),和-h(易读格式显示文件大小)[^1^]。
  • mkdir指令:创建新目录[^1^]。使用-p选项可创建多级目录[^1^]。
  • rmdir指令:删除空目录[^1^]。如果需要删除非空目录,使用rm -rf命令[^1^]。

2.文件操作命令

  • touch指令:创建空文件或更新文件时间戳[^1^][^2^]。基本语法是touch filename[^2^]。
  • cp指令:拷贝文件或目录到指定位置[^1^][^2^]。使用-r选项递归复制整个文件夹[^2^]。
  • rm指令:移除(删除)文件或目录[^1^][^2^]。-r选项递归删除整个文件夹,-f强制执行删除而不提示,-v显示指令执行过程[^2^]。
  • mv指令:移动或重命名文件或目录[^1^][^2^]。基本用法是mv oldNameFile newNameFile[^2^]。

3.查看和编辑文件内容

  • cat指令:查看小文件内容[^1^][^2^]。基本语法是cat [选项] 要查看的文件,常用选项-n显示行号[^2^]。
  • more指令less指令:分屏查看文件内容[^1^][^2^]。两者功能类似,但less支持更多终端并且更高效[^2^]。

4.其他常用命令

  • echo指令:输出内容到控制台[^1^][^2^]。基本语法是echo [选项] 输出内容[^2^]。
  • head指令tail指令:分别用于显示文件的开头部分和末尾部分内容[^1^][^2^]。默认情况下分别显示前10行和后10行,可以使用-n选项调整显示行数[^2^]。
  • history指令:查看已经执行过的历史命令[^1^]。使用history n显示最近n条指令,history -c清空历史指令记录[^1^]。

5.高级命令和配置

  • grep指令:在文件中搜索指定文本[^2^]。基本语法是grep search_term file_name[^2^]。
  • ps指令kill指令:分别用于显示当前运行的进程和终止进程[^2^]。例如,ps aux显示所有进程,kill process_id终止特定进程[^2^]。
  • ifconfig/ip指令:查看和配置网络接口信息[^2^]。使用ifconfigip addr show查看网络配置信息[^2^]。
  • ping指令:测试与主机的连通性[^2^]。基本用法是ping host_name_or_ip[^2^]。

6.文件权限和软链接

  • chmod指令chown指令:分别用于修改文件或目录的权限和所有者[^2^]。例如,chmod permissions file_namechown owner:group file_name[^2^]。
  • ln指令:创建软链接或硬链接[^1^]。使用ln -s [原文件] [目标文件]创建软链接[^1^]。

这些命令不仅涵盖了文件管理、文本查看和编辑、还涉及网络管理和系统信息查看等各个方面,是日常使用Linux系统所必须掌握的基础命令。

关闭Linux防火墙

在Linux中,关闭防火墙主要涉及到对iptables或者firewalld的停止和配置修改。具体如下:

1.使用iptables命令关闭防火墙

  • 检查iptables状态:运行以下命令来确认iptables是否正在运行:
    1
    sudo iptables -L -v
    如果显示出一系列规则,说明iptables正在运行[^1^]。
  • 停止iptables服务:执行以下命令可以临时停止iptables服务:
    1
    sudo systemctl stop iptables
    此命令可以将iptables服务暂时停止,但系统重启后会重新加载之前的设置。
  • 禁用iptables开机启动:要使上述设置在系统重启后仍然有效,需要禁止iptables的开机自启动:
    1
    sudo systemctl disable iptables

2.使用firewalld命令关闭防火墙

  • 检查firewalld状态:通过以下命令可以查看firewalld的状态:
    1
    sudo firewall-cmd --state
    如果返回的信息显示“running”,则表示firewalld正在运行[^2^]。
  • 停止firewalld服务:执行以下命令可以临时停止firewalld服务:
    1
    sudo systemctl stop firewalld
    这将会停止firewalld的运行,但不会永久修改其配置。
  • 禁用firewalld开机启动:为使设置在系统重启后继续生效,需禁止firewalld的开机自启动:
    1
    sudo systemctl disable firewalld

3.永久删除防火墙规则

  • 清除iptables规则:通过以下命令可以清除所有iptables规则,确保在重启后不会有任何规则被重新加载:
    1
    2
    3
    4
    5
    6
    7
    8
    sudo iptables -F
    sudo iptables -X
    sudo iptables -t nat -F
    sudo iptables -t nat -X
    sudo iptables -t mangle -F
    sudo iptables -t mangle -X
    sudo iptables -t raw -F
    sudo iptables -t raw -X
  • 清除firewalld规则:执行以下命令可以移除firewalld的所有规则:
    1
    2
    3
    sudo firewall-cmd --reload
    sudo firewall-cmd --zone=public --remove-source=<源地址>
    sudo firewall-cmd --zone=public --remove-interface=<接口>

4.确认并测试防火墙状态

  • 验证防火墙状态:完成上述操作后,再次运行以下命令来确认防火墙是否已被成功关闭:

    1
    sudo iptables -L -v

    1
    sudo firewall-cmd --state

    如果这些命令没有任何输出或显示“not running”,则说明防火墙已成功关闭。

  • 进行网络测试:为了确认防火墙已经完全关闭,可以尝试从外部网络访问服务器上的某个服务。如果能够成功访问,说明防火墙已经彻底关闭。

综上所述,关闭Linux中的防火墙涉及到对服务的控制以及规则的删除。不论是使用iptables还是firewalld,都建议在熟悉的情况下进行操作,以保证系统安全和稳定。关闭防火墙会降低系统的安全性,因此请确保您了解该操作的影响,并在必要时采取其他安全措施以保护您的系统。

Shell脚本

Shell脚本是一种用于自动化任务的脚本语言,通常在Unix或Linux系统中使用。编写Shell脚本的基本语法规范如下:

  1. 文件扩展名:Shell脚本的文件扩展名通常为.sh

  2. 解释器声明:在脚本的第一行,添加解释器声明,指定要使用的Shell解释器。例如,对于Bash Shell,可以使用以下声明:

    1
    #!/bin/bash
  3. 注释:在Shell脚本中,以#开头的行表示注释。注释用于解释脚本的功能和用法。

  4. 变量:在Shell脚本中,可以使用变量来存储数据。变量名由字母、数字和下划线组成,但不能以数字开头。赋值时等号两边不能有空格。例如:

    1
    2
    name="John"
    age=30
  5. 命令执行:在Shell脚本中,可以直接执行命令。例如:

    1
    ls -l
  6. 控制结构:Shell脚本支持多种控制结构,如条件语句(if-else)、循环语句(for、while)等。例如:

    1
    2
    3
    4
    5
    if [ $age -gt 18 ]; then
    echo "You are an adult."
    else
    echo "You are not an adult."
    fi
  7. 函数:可以在Shell脚本中定义函数,以便重复使用代码块。例如:

    1
    2
    3
    4
    5
    function greet() {
    echo "Hello, $1!"
    }

    greet "Alice"
  8. 参数传递:在调用脚本时,可以通过命令行参数传递值给脚本。例如:

    1
    ./myscript.sh arg1 arg2
  9. 脚本执行权限:为了使脚本可执行,需要为其设置执行权限。可以使用chmod命令添加执行权限:

    1
    chmod +x myscript.sh
  10. 脚本调用:可以直接运行脚本,也可以在其他脚本中调用它。例如:

    1
    ./myscript.sh

这些是Shell脚本的基本语法规范。根据实际需求,可以编写更复杂的脚本来实现各种自动化任务。

容器

容器:

容器是一种虚拟化技术。
我们知道,在传统的服务器使用中,服务器物理资源存在较大的浪费。虚拟化技术就是为了避免这种浪费而产生的技术。下图展示了从虚拟化技术,到容器技术的发展史。

img

我们可以看到,容器技术不是凭空产生的,而是经历了漫长的演变过程。了解了这种演变,了解了容器技术为解决什么问题而诞生,你就不会对容器技术望而生畏了。

容器技术最早应用在Linux操作系统,称为Linux Container(LXC),早期在互联网公司开始使用部署分布式应用,随后随着容器管理器(Docker、Rocket和CloudFoundary Garden)兴起,定制容器宿主操作系统(CoreOS、Ubuntu Snappy、Red Hat Atomic)盛行,容器被有效构建和管理、并在各行各业普遍使用和认可。

容器技术的官方定义是:

容器是通过一种虚拟化技术来隔离运行在主机上不同进程,从而达到进程之间、进程和宿主操作系统相互隔离、互不影响的技术。

要理解这个定义,首先要弄清楚容器和虚拟机的区别。

简单来说,虚拟机是一个机器,但容器是一个进程。

每一个虚拟机里面都有一套完整的操作系统,而容器层安装在操作系统之上,它直接利用了宿主机的内核,更加轻量化,启动速度极快。通常,我们在会每个容器里面跑单个的应用,而在虚拟机里会跑很多应用。下图展示了虚拟机和容器的不同。

img容器技术具有:简化部署、快速启动、服务组合、易于迁移等优点。

容器技术具有:简化部署、快速启动、服务组合、易于迁移等优点。

K8S(Kubernetes)

img

Kubernetes (简称k8s)近两年大火,如果你是一名云计算从业者,或者运维人员,还不了解kubernetes 的话那你已经OUT了。

Kubernetes 是什么

官方定义是,Kubernetes是用于自动部署、扩展和容器化应用程序的开源系统。

而我们要了解究竟什么是Kubernetes,首先要明白容器的概念,以及Docker是什么。

什么是kubernetes

了解了容器和Docker,再来看kubernetes的定义就很容易理解了。

上文提到,Kubernetes是用于自动部署、扩展和容器化应用程序的开源系统。

当我们使用的容器服务多了,面临的访问量增大以后,我们就需要一种工具把这些容器统一的管理起来,需要实现对这些容器的自动部署、扩展和管理。也就是俗称的容器编排。

Kubernetes就是这样一种容器编排系统。

img

上图是Kubernetes的架构图。

从大的模块看,图中包含Master组件(APIs, scheduler, etc),Node节点和cloud端。

Master中,包含负责提供API服务的组件kube-apiserver;作为后台数据库的etcd,监听组件kube-scheduler;运行控制器的组件kube-controller-manager。

Node节点中包括运行在各个节点的客户端的kubelet,运行在各个节点的网络代理组件kube-proxy,支持运行容器底层环境的软件Container Runtime。

Cloud端作为集群外部的附加能力,通过与cloud-controller-manager组件对接,扩展k8s集群云上动态扩展的特性。

如何上手使用 kubernetes

Kubernetes的安装

Kubernetes有很多种安装方法,这里就不一一介绍了。推荐三种主要的安装方法,感兴趣的朋友可以通过关键词搜索相关教程,按步骤尝试安装。如果遇到问题,可以在我们的社群或者Kubernetes中文社区提问。

常见的三种安装方法:
- Kuberspray
- Kubeadm
- 手动安装

Kubernetes有哪些优势

为什么我们要用Kubernetes?因为它更省钱,更快,更省力。

Kubernetes和Docker都是开源的,这意味着你不需要支付高昂的授权费用;容器服务从启动到关停,比传统的服务器、虚拟机都要快捷很多;管理方面,Kubernetes提供一整套架构,管理方便,节省了运维的人力。

容器技术是未来发展的必然趋势。如果你从事开发、运维、云计算相关工作,一定要多多关注容器技术的发展。

几个与Kubernetes相关的产品/概念

在Kubernetes的生产实践中,有这几个产品/概念建议你去了解:

Openshift:OpenShift是由Red Hat开发的容器化软件解决方案。他们的主要产品是OpenShift容器平台,这是由Kubernetes管理的平台即服务(PaaS)。

Amazon EKS:Amazon Elastic Kubernetes Service (Amazon EKS) ,这是一项完全托管的 Kubernetes 服务。EKS拥有原生的kubernetes体验,并与AWS其他的云服务无缝的结合,为用户提供极佳的云端容器体验。下期直播我们会着重介绍这个产品。

微服务:由于容器技术的发展,微服务的理念也越来越被人们接受。按照微服务的理念,如果使用容器作为基础设施,能够实现快速部署,快速迭代。很多时候大家会将微服务和容器技术一起谈论,甚至有些公司直接将自己的新建的微服务应用部署在容器平台上。

如何学习Kubernetes

学习kubernetes,其实官方文档和github 就用了。最重要的,是你要边实践边学习,遇到不懂的问题,多搜索,多思考,多在社区里交流。实践出真知,这也是所有技术学习的不二法门。

Docker

最流行的开源容器引擎:Docker

谈到容器,就不能不讲Docker。Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。

img

Docker把容器变得标准化了。要理解Docker,你需要明白三个最主要的概念:容器、镜像、仓库。

- 容器是运行在虚拟机上的进程。
- 镜像是一种存储形式,可以理解为数据或应用的副本。
- 仓库是用来存储镜像的。

Docker能够普遍使用起来,很大程度上个得益于Docker的仓库里汇集了很多已经标准化的镜像,大大提升了部署效率。

作者:sea
链接:https://www.zhihu.com/question/486012993/answer/3532823996
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

通过项目脚本部署

# CentOS
yum -y install wget curl
# ubuntu
apt -y install wget curl

bash -c “$(curl -fsSL https://raw.githubusercontent.com/kubesre/docker-registry-mirrors/main/dockerproxy/install/DockerProxy_Install.sh)”

功能

  • 一键部署Docker镜像代理服务的功能,并且自动配置https证书.
  • 支持多个镜像仓库的代理,包括Docker Hub、GitHub Container Registry (http://ghcr.io)、Quay Container Registry (http://quay.io)和 Kubernetes Container Registry (http://k8s.gcr.io)
  • 自动检查并安装所需的依赖软件,如Docker、Nginx等,并确保系统环境满足运行要求. 自动清理注册表上传目录中的那些不再被任何镜像或清单引用的文件
  • 提供了重启服务、更新服务、更新配置和卸载服务的功能,方便用户进行日常管理和维护
  • 支持主流Linux发行版操作系统,例如Centos、Ubuntu、Rocky、Debian、Rhel等 支持主流ARCH架构下部署,包括linux/amd64、linux/arm64

✨ 教程

前缀替换的 Registry 的参考

源站 替换为
http://cr.l5d.io l5d.your_domain_name
http://docker.elastic.co elastic.your_domain_name
http://docker.io docker.your_domain_name
http://gcr.io gcr.your_domain_name
http://ghcr.io ghcr.your_domain_name
http://k8s.gcr.io k8s-gcr.your_domain_name
http://registry.k8s.io k8s.your_domain_name
http://mcr.microsoft.com mcr.your_domain_name
http://nvcr.io nvcr.your_domain_name
http://quay.io quay.your_domain_name
http://registry.jujucharms.com jujucharms.your_domain_name

使用方法

以argocd 清单文件为例:

wget https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml

首先需要确定原始镜像地址仓库

以argocd yaml文件举例:

grep -n image: install.yaml
21645: image: http://quay.io/argoproj/argocd:v2.11.0
21739: image: http://ghcr.io/dexidp/dex:v2.38.0
21768: image: http://quay.io/argoproj/argocd:v2.11.0
21850: image: http://quay.io/argoproj/argocd:v2.11.0
21927: image: redis:7.0.14-alpine
22162: image: http://quay.io/argoproj/argocd:v2.11.0
22214: image: http://quay.io/argoproj/argocd:v2.11.0
22531: image: http://quay.io/argoproj/argocd:v2.11.0
22825: image: http://quay.io/argoproj/argocd:v2.11.0

方案一

使用方式:

使用方式都是替换原来镜像的前缀域名即可实现加速效果,比如:

#http://docker.io
原来地址:redis:7.0.14-alpine # 这个是官方镜像,省略了前边的域名
替换地址:docker.your_domain_name/redis:7.0.14-alpine

#http://quary.io
原来的地址:http://quay.io/argoproj/argocd:v2.11.0
替换地址:quay.your_domain_name/argoproj/argocd:v2.11.0

#http://ghcr.io
原来的地址:http://ghcr.io/dexidp/dex:v2.38.0
替换地址:ghcr.your_domain_name/dexidp/dex:v2.38.0

方案二

注意事项

通过这种方式只能加速[docker hub](https://www.zhihu.com/search?q=docker hub&search_source=Entity&hybrid_search_source=Entity&hybrid_search_extra={“sourceType”%3A”answer”%2C”sourceId”%3A3532823996})的镜像,对于其他镜像仓库,比如k8s.gcr.io, quay.io等,需要使用方案一替换前缀的方式进行加速。

使用方式:

还有一种方案是通过将加速地址写入到docker配置文件当中实现加速。

Ubuntu14.04、Debian7Wheezy

对于使用 upstart 的系统而言,编辑 /etc/default/docker 文件,在其中的 DOCKER_OPTS 中配置加速器地址:

DOCKER_OPTS=”–registry-mirror=https://docker.your_domain_name

Ubuntu16.04+、Debian8+、CentOS7

对于使用 systemd 的系统,请在 /etc/docker/daemon.json 中写入如下内容(如果文件不存在请新建该文件):

{
“registry-mirrors”: [
https://docker.your_domain_name
]
}

公益镜像仓库

由于许多公开镜像站已不再可用,我们建立了一个公益镜像仓库供大家下载使用。然而,由于镜像仓库的带宽有限,建议用户自行搭建。以下是相关资源和使用方法:

Github仓库地址:?https://github.com/kubesre/docker-registry-mirrors

如果觉得有帮助,请在GitHub上点个⭐️以示鼓励。

使用方法

http://k8s.gcr.io/coredns/coredns => kubesre.xyz/http://k8s.gcr.io/coredns/coredns

或者通过支持的镜像仓库前缀替换即可使用,例如:

http://k8s.gcr.io/coredns/coredns => k8s-gcr.kubesre.xyz/coredns/coredns

总结

以上是搭建个人Docker镜像站的完整流程。如果有任何疑问或建议,欢迎在评论区留言交流。同时,也欢迎大家分享自己使用的镜像站。

最后推荐一个演示的docker镜像站:?https://github.com/kubesre/dock

其他文章
cover
  • 24/08/12
  • 17:32