先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Linux运维全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上运维知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024b (备注运维)

正文

一、docker仓库

1.简介

Docker 仓库是用来包含镜像的位置,Docker提供一个注册服务器(Register)来保存多个仓库,每个仓库又可以包含多个具备不同tag的镜像。Docker运行中使用的默认仓库是 Docker Hub 公共仓库。

2.docker hub

docker hub是docker公司维护的公共仓库,用户可以免费使用,也可以购买私有仓库。 首先在docker hub 官网网站注册一个账号 在docker hub上新建一个公共仓库 接下来要从docker主机上传镜像,首先需要登录:

[root@server1 sysctl.d]# docker login

Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.

Username: 852791073

Password:

docker hub为了区分不同用户的同名镜像,要求镜像的格式是:[username]/xxx.tag

[root@server1 ~]# docker tag webserver:v1 852791073/webserver:latest ## 我们将之前最好的nginx镜像上传

[root@server1 ~]# docker push 852791073/webserver:latest

我们在dockerhub上已经成功看到刚才我们上传的webserver了

3.registry工作原理

一次docker pull 或 push背后发生的事情 index服务主要提供镜像索引以及用户认证的功能。当下载一个镜像的时候,首先会去index服务上做认证,然后查找镜像所在的registry的地址并放回给docker客户端,docker客户端再从registry下载镜像,在下载过程中 registry会去index校验客户端token的合法性,不同镜像可以保存在不同的registry服务上,其索引信息都放在index服务上。

Docker Registry有三个角色,分别是index、registry和registry client。

index 负责并维护有关用户帐户、镜像的校验以及公共命名空间的信息。 Web UI 元数据存储 认证服务 符号化registry 是镜像和图表的仓库,它不具有本地数据库以及不提供用户认证,通过Index Auth service的Token的方式进行认证。Registry Client Docker充当registry客户端来维护推送和拉取,以及客户端的授权。

二、搭建私有仓库

docker hub虽然方便,但是还是有限制 需要internet连接,速度慢 所有人都可以访问 由于安全原因企业不允许将镜像放到外网 好消息是docker公司已经将registry开源,我们可以快速构建企业私有仓库

1.下载registry镜像

[root@server1 nginx]# docker pull registry

[root@server1 nginx]# docker images registry

[root@server1 nginx]# docker history registry:latest

我们看到registry的端口是5000,数据卷是/var/lib/registry 所以我们需要做端口映射,把数据卷指定挂载到宿主机

2.端口映射

[root@server1 nginx]# docker run -d --name registry -p 5000:5000 -v /opt/registry:/var/lib/registry registry

将本地的镜像上传到仓库

[root@server1 registry]# docker tag yakexi007/game2048 localhost:5000/game2048:latest ## 改名

[root@server1 registry]# docker push localhost:5000/game2048

查看是否上传成功

[root@server1 registry]# curl localhost:5000/v2/_catalog

5.为Docker仓库添加证书加密功能

链接:参考docker参考文档 实验环境,这里我们需要重新开一台虚拟机。server2,并且下载docker 我们测试从远端拉取我们上传的镜像,发现拉取不到,这是没有相应的注册信息

1.部署普通的HTTP注册表

编辑daemon.json文件,其默认位置 /etc/docker/daemon.json , 重新启动Docker以使更改生效。

[root@server2 ~]# cd /etc/docker/

[root@server2 docker]# vim daemon.json

{

"insecure-registries" : ["myregistrydomain.com:5000"]

}

[root@server2 docker]# systemctl reload docker.service

这是我们再次尝试拉取,成功拉取

[root@server2 docker]# docker pull 172.25.1.1:5000/webserver

2.使用自签名证书

使用自签名证书,这比不安全的注册表解决方案更安全 这里还需要将刚才编写的注册巍峨文件删除

[root@server2 docker]# rm -fr daemon.json

生成自己的证书

[root@server1 ~]# mkdir -p certs

[root@server1 ~]# openssl req \

> -newkey rsa:4096 -nodes -sha256 -keyout certs/westos.org.key \

> -x509 -days 365 -out certs/westos.org.crt

生成证书(域名westos.org要求在主机上有解析) 如果注册表当前正在运行,请停止它。

[root@server1 ~]# docker stop registry

[root@server1 ~]# docker rm registry

参考:官方文档

[root@server1 ~]# vim /etc/hosts ##加上reg.westos.org解析 ,server2相同

将westos.org..crt文件复制到 /etc/docker/certs.d/reg.westos.org/ca.crt每个Docker主机上。您无需重启Docker。

[root@server1 ~]# mkdir /etc/docker/certs.d/reg.westos.org -p

[root@server2 ~]# mkdir /etc/docker/certs.d/reg.westos.org -p

[root@server1 ~]# cp certs/westos.org.crt /etc/docker/certs.d/reg.westos.org/ca.crt

拷贝证书到其他docker主机

[root@server1 ~]# cd /etc/docker/certs.d/reg.westos.org/

[root@server1 reg.westos.org]# scp ca.crt server2:/etc/docker/certs.d/reg.westos.org/

重新启动注册表,将其定向为使用TLS证书。此命令将certs/目录绑定安装到容器中的/certs/,并设置环境变量,该变量告诉容器在何处找到domain.crt anddomain.key文件。注册表在端口443(默认的HTTPS端口)上运行。

[root@server1 ~]# docker run -d --name registry -p 443:443 -v /opt/registry:/var/lib/registry -v "$(pwd)"/certs:/certs -e REGISTRY_HTTP_ADDR=0.0.0.0:443 -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/westos.org.crt -e REGISTRY_HTTP_TLS_KEY=/certs/westos.org.key registry

测试: server1上传,server2下载

[root@server1 ~]# docker tag busybox:latest reg.westos.org/busybox:latest

[root@server1 ~]# docker push reg.westos.org/busybox:latest

[root@server2 ~]# docker pull reg.westos.org/busybox:latest

3.本地基本身份验证

实现访问限制的最简单方法是通过基本身份验证(这与其他Web服务器的基本身份验证机制非常相似)。本示例使用本机基本身份验证htpasswd来存储机密。 参考:https://docs.docker.com/registry/deploying/#get-a-certificate

创建一个密码文件

[root@server1 ~]# yum install -y httpd-tools

[root@server1 ~]# mkdir auth

[root@server1 ~]# htpasswd -B -c auth/htpasswd sun

[root@server1 ~]# docker rm -f registry ## 停止注册表。

[root@server1 ~]# docker run -d --name registry -p 443:443 -v /opt/registry:/var/lib/registry -v "$(pwd)"/certs:/certs -e REGISTRY_HTTP_ADDR=0.0.0.0:443 -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/westos.org.crt -e REGISTRY_HTTP_TLS_KEY=/certs/westos.org.key -v "$(pwd)"/auth:/auth -e "REGISTRY_AUTH=htpasswd" -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" -e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd registry

## 使用基本身份验证启动注册表。

注意路径问题

测试上传镜像

[root@server1 ~]# docker tag mario:latest reg.westos.org/mario:latest

[root@server1 ~]# docker push reg.westos.org/mario:latest

我们发现没有认证,所以不能上传。 尝试从注册表中提取镜像,或将图像推入仓库。这些命令都是失败的。

需要登录到注册表。

[root@server1 ~]# docker login reg.westos.org

再次尝试上传,显示上传成功。 尝试远端拉取镜像,显示失败,没有认证信息。

[root@server2 ~]# docker pull reg.westos.org/mario

登陆

[root@server2 ~]# docker login reg.westos.org

Username: sun

Password:

[root@server2 ~]# docker pull reg.westos.org/mario

二、harbor仓库

最全的Linux教程,Linux从入门到精通

======================

linux从入门到精通(第2版) Linux系统移植 Linux驱动开发入门与实战 LINUX 系统移植 第2版 Linux开源网络全栈详解 从DPDK到OpenFlow

第一份《Linux从入门到精通》466页

====================

内容简介

====

本书是获得了很多读者好评的Linux经典畅销书**《Linux从入门到精通》的第2版**。本书第1版出版后曾经多次印刷,并被51CTO读书频道评为“最受读者喜爱的原创IT技术图书奖”。本书第﹖版以最新的Ubuntu 12.04为版本,循序渐进地向读者介绍了Linux 的基础应用、系统管理、网络应用、娱乐和办公、程序开发、服务器配置、系统安全等。本书附带1张光盘,内容为本书配套多媒体教学视频。另外,本书还为读者提供了大量的Linux学习资料和Ubuntu安装镜像文件,供读者免费下载。

本书适合广大Linux初中级用户、开源软件爱好者和大专院校的学生阅读,同时也非常适合准备从事Linux平台开发的各类人员。

需要《Linux入门到精通》、《linux系统移植》、《Linux驱动开发入门实战》、《Linux开源网络全栈》电子书籍及教程的工程师朋友们劳烦您转发+评论

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注运维)

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长! 生阅读,同时也非常适合准备从事Linux平台开发的各类人员。**

需要《Linux入门到精通》、《linux系统移植》、《Linux驱动开发入门实战》、《Linux开源网络全栈》电子书籍及教程的工程师朋友们劳烦您转发+评论

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注运维) [外链图片转存中…(img-ljvJJqE6-1713318406824)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

好文阅读

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。