首页
关于
Search
1
给你10个市场数据调研报告的免费下载网站!以后竞品数据就从这里找!
182 阅读
2
php接口优化 使用curl_multi_init批量请求
144 阅读
3
《从菜鸟到大师之路 ElasticSearch 篇》
107 阅读
4
2024年备考系统架构设计师
104 阅读
5
PHP 文件I/O
92 阅读
php
thinkphp
laravel
工具
开源
mysql
数据结构
总结
思维逻辑
令人感动的创富故事
读书笔记
前端
vue
js
css
书籍
开源之旅
架构
消息队列
docker
教程
代码片段
redis
服务器
nginx
linux
科普
java
c
ElasticSearch
测试
php进阶
php基础
登录
Search
标签搜索
php函数
php语法
性能优化
安全
错误和异常处理
问题
vue
Composer
Session
缓存
框架
Swoole
api
并发
异步
正则表达式
php-fpm
mysql 索引
开发规范
协程
dafenqi
累计撰写
786
篇文章
累计收到
28
条评论
首页
栏目
php
thinkphp
laravel
工具
开源
mysql
数据结构
总结
思维逻辑
令人感动的创富故事
读书笔记
前端
vue
js
css
书籍
开源之旅
架构
消息队列
docker
教程
代码片段
副业
redis
服务器
nginx
linux
科普
java
c
ElasticSearch
测试
php进阶
php基础
页面
关于
搜索到
6
篇与
的结果
2023-08-30
最详细的 K8S 学习笔记总结
最详细的 K8S 学习笔记总结
2023年08月30日
6 阅读
0 评论
0 点赞
2023-08-30
最详细的 Docker 学习笔记总结
最详细的 Docker 学习笔记总结
2023年08月30日
14 阅读
0 评论
0 点赞
2023-08-30
k8s 和 Docker 关系简单说明
k8s 和 Docker 关系简单说明本篇文章目的:让你更全面了解k8s概念,以及学到在工作中常用的操作。整体更偏向于原理和应用。在正式开始k8s之前,我们先看看k8s和Docker的关系,分别从虚拟化角度、部署方式角度叙述why use容器,话不多说,开干。目前发现并没有将kubernetes和Docker技术产生背景和需求进行比较的文章,本文从最纯正的官方定义角度出发并展开,阐述二者产生背景及与传统技术对比。简要介绍官方定义1:Docker是一个开源的应用容器引擎,开发者可以打包他们的应用及依赖到一个可移植的容器中,发布到流行的Linux机器上,也可实现虚拟化。官方定义2:k8s是一个开源的容器集群管理系统,可以实现容器集群的自动化部署、自动扩缩容、维护等功能。与传统技术对比接下来我们看两张经典的图:从虚拟化角度上图是Docker容器(可用k8s管理的玩意儿)与传统虚拟化方式的不同之处:传统的虚拟技术在将物理硬件虚拟成多套硬件后,需要在每套硬件上都部署一个操作系统,接着在这些操作系统上运行相应的应用程序。而Docker容器内的应用程序进程直接运行在宿主机(真实物理机)的内核上,Docker引擎将一些各自独立的应用程序和它们各自的依赖打包,相互独立直接运行于未经虚拟化的宿主机硬件上,同时各个容器也没有自己的内核,显然比传统虚拟机更轻便。每个集群有多个节点,每个节点可运行多个容器,我们的kuberbete就是管理这些应用程序所在的小运行环境(container)而生。从部署角度注意,大家别把这幅图与上面Docker的那张图混淆了,图1是从虚拟化角度,说明了为应用提供必要的运行环境所需要做的虚拟化操作(即:传统:虚拟出的虚拟机装操作系统、Docker:容器引擎管理下的容器)。而图2是在这些具体运行环境上进行真实应用部署时的情况,传统方式是将所有应用直接部署在同一个物理机器节点上,这样每个App的依赖都是完全相同的,无法做到App之间隔离,当然,为了隔离,我们也可以通过创建虚拟机的方式来将App部署到其中(就像图1上半部分那样),但这样太过繁重,故比虚拟机更轻便的Docker技术出现,现在我们通过部署Container容器的技术来部署应用,全部Container运行在容器引擎上即可。既然嫌弃虚拟机繁重,想用Docker,那好,你用吧,怎么用呢?手动一个一个创建?当然不,故kubernetes技术便出现了,以kubernetes为代表的容器集群管理系统,这时候就该上场表演了。说白了, 我们用kubernetes去管理Docker集群,即可以将Docker看成Kubernetes内部使用的低级别组件。另外,kubernetes不仅仅支持Docker,还支持Rocket,这是另一种容器技术 。希望我这篇文章中简单的描述能让你对两者有所理解和认识。到此这篇关于k8s和Docker关系简单说明的文章就介绍到这了。
2023年08月30日
10 阅读
0 评论
0 点赞
2023-08-12
聊聊 Docker
聊聊 DockerDocker 是什么?定义Docker 是一款 开源的应用容器引擎。 简单来说,就是 以容器虚拟化技术为基础的软件。可以把应用程序和所依赖的包一起打包到一个可移植的镜像中,发布到 Linux 或者 Windows 上运行。(代码 + 运行环境)虚拟机与容器技术对比虚拟机虚拟机 可以高效使用计算机资源(比如可以解决同一种服务端口冲突、程序依赖版本库不同、进程受限制等问题) ,常见的虚拟机有: vmware、virtualbox 。虚拟机的 底层原理 是基于 hypervisor(硬件抽象层) ,也叫 虚拟机监视器(VMM) 。容器技术是一种沙盒技术,相互之间不会有任何接口。将应用运行在容器中,容器之间隔离的。 容器技术更 关注应用本身,应用和所依赖环境的共享和复用。 Linux Container (简称 LXC),是一种内核轻量级的操作系统层虚拟化技术,容器化技术就是基于 LXC 实现的。四个维度对比由此可见,为什么容器技术会出现,为什么容器技术会那么流行,是因为虚拟机有痛点的,容器技术就是为了解决这些痛点而生的。而 Docker 就是容器化技术的代表。Docker 的应用场景Docker 的实现原理与优势Docker 的技术架构Docker 是由 dotCloud 公司于 2013 年推出的产品,用 GO 语言编写的。 Docker 有两种发行版本 ,分别是 CE (Community Edition,社区版)和 EE (Enterprise Edition,企业版)。Docker 是 C/S 架构。客户端(docker cli,执行程序),通过命令行和 API 形式与守护进程(docker daemon,提供 Docker 服务)进行通讯。 举个具体的例子,在常见的虚拟机实现中,我们要搭建一套 LNMP 结构的服务,我们通常会建立一个虚拟机,在虚拟机中安装上 Linux 系统,之后分别安装 Nginx、MySQL 和 PHP。而在 Docker 里,最佳的实践是分别基于 Nginx、MySQL 和 PHP 的镜像建立三个容器,分别运行 Nginx、MySQL 和 PHP ,而它们所在的虚拟操作系统也直接共享于宿主机的操作系统。Docker 的实现原理Linux 三大技术Docker 的实现,主要归结于 Linux 的三大技术:命名空间(Namespaces)、控制组(Control Groups)和联合文件系统(Union FIle System)。命名空间(Namespaces)在编程语言中,命名空间的主要目的就是为了集合相同模块的类,区分不同模块间的同名类。Linux 内核的命名空间,就是 能够将计算机资源进行切割划分,形成各自独立的空间。 如 User Namespace、Net Namespace、PID Namespace、Mount Namespace 等等。利用 PID Namespace,Docker 就实现了容器中隔离程序运行中进程隔离这一目标。控制组(Control Groups)资源控制组的作用就是 控制计算机资源 。CGroups 主要做的是硬件资源的隔离。 除了资源的隔离,还有资源分配这个关键性的作用。 通过 CGroups,我们 可以指定任意一个隔离环境对任意资源的占用值或占用率 ,这对于很多分布式使用场景来说是非常有用的功能。联合文件系统(Union FIle System)一种能够 同时挂载不同实际文件或文件夹到同一目录,形成一种联合文件结构的文件系统。 Docker 用它解决虚拟环境对文件系统占用过量,实现虚拟环境快速启停等问题。Docker 大幅减少了虚拟文件系统对物理存储空间的占用。(例子:Git,Git 中每进行一次提交,Git 并不是将我们所有的内容打包成一个版本,而只是将修改的部分进行记录,这样即使我们提交很多次后,代码库的空间占用也不会倍数增加)Docker 的优势应用的安全性、可移植性和节约成本;让自动化部署更简单(持续集成CI和持续部署CD,快速交付);加速应用架构现代化进程(如微服务架构);充分利用服务器资源;跨平台部署和动态伸缩(如使用K8s编排工具管理)。Docker 的安装macos 安装安装教程:https://www.runoob.com/docker/macos-docker-install.htmlwindows 安装安装教程:https://www.runoob.com/docker/windows-docker-install.html 或者 https://blog.58heshihu.com/index.php/archives/286/Linux 安装centos:https://www.runoob.com/docker/centos-docker-install.htmlubuntu:https://www.runoob.com/docker/ubuntu-docker-install.htmlDocker 的四大核心组成镜像(Image)可以理解为 一个只读的文件包,其中包含了虚拟环境运行最原始文件系统的内容。 查看镜像列表:docker images镜像命名格式:开发者 / 镜像名字:版本号拉取: docker pull 镜像名称搜索: docker search 镜像名称 //从docker hub搜索镜像详细信息: docker inspect 镜像名称/ID删除镜像: docker rmi 镜像名称/ID容器(Container)简介在容器技术中, 容器就是用来隔离虚拟环境的基础设施,而在 docker 里,它也被引申为隔离出来的虚拟环境。容器包括一个 Docker 镜像一个程序运行环境一个指令集合容器的生命周期Created:容器已经被创建,容器所需的相关资源已经准备就绪,但容器中的程序还未处于运行状态Running:容器正在运行,也就是容器中的应用正在运行Paused:容器已暂停,表示容器中的所有程序都处于暂停 ( 不是停止 ) 状态Stopped:容器处于停止状态,占用的资源和沙盒环境都依然存在,只是容器中的应用程序均已停止Deleted:容器已删除,相关占用的资源及存储在 Docker 中的管理信息也都已释放和移除常用命令查看正在运行的容器列表:docker ps所有容器:docker ps -a创建启动容器:docker run --name redis -d redis:5.0.15停止容器:docker stop 容器名字/ID启动/重启容器:docker start/restart 容器名字/ID删除容器:docker rm [-f] //-f强制,可以删除正在运行的容器进入容器:docker exec -it redis bash //容器内部是虚拟出来的一个Linux查看容器报错信息:docker logs 容器ID网络(Network)容器网络 实质上也是由 Docker 为应用程序所创造的虚拟环境的一部分,它能让应用从宿主机操作系统的网络环境中独立出来,形成容器自有的网络设备、IP 协议栈、端口套接字、IP 路由表、防火墙等等与网络相关的模块。 沙盒(Sandbox)提供了容器的虚拟网络栈,也就是之前所提到的端口套接字、IP 路由表、防火墙等的内容。其实现隔离了容器网络与宿主机网络,形成了完全独立的容器网络环境网络(Network)可以理解为 Docker 内部的虚拟子网,网络内的参与者相互可见并能够进行通讯。Docker 的这种虚拟网络也是于宿主机网络存在隔离关系的,其目的主要是形成容器间的安全通讯环境端点(Endpoint)是位于容器或网络隔离墙之上的洞,其主要目的是形成一个可以控制的突破封闭的网络环境的出入口。当容器的端点与网络的端点形成配对后,就如同在这两者之间搭建了桥梁,便能够进行数据传输了Docker 容器网络一共有 5 种网络驱动 ,网络驱动,分别是: Bridge Driver(网桥 默认)、Host Driver、Overlay Driver(集群)、MacLan Driver、None Driver。 容器之间以及宿主机与容器之间可以通过端口来进行访问。常用命令查看网络列表:docker network ls容器加入网络:docker run -d --name mysql -e MYSQL_RANDOM_ROOT_PASSWORD=yes --network network_name mysql:5.7docker run -d --name php --link mysql --network network_name php:latest端口映射:docker run -d --name nginx -p 8080:80 nginx:1.12 //80为容器的端口,8080可为宿主机或别的容器的端口数据卷(Volume)在 Docker 中,通过 bind mount、volume、tmpfs mount 这几种方式进行数据共享或持久化的文件或目录,我们都称为数据卷 (Volume)。Docker 的数据卷一共 有 3 中挂载方式 ,分别是: Bind Mount、Volume、Tmpfs MountBind Mount 能够直接将宿主操作系统中的目录和文件挂载到容器内的文件系统中,通过指定容器外的路径和容器内的路径,就可以形成挂载映射关系,在容器内外对文件的读写,都是相互可见的Volume 也是从宿主操作系统中挂载目录到容器内,只不过这个挂载的目录由 Docker 进行管理,我们只需要指定容器内的目录,不需要关心具体挂载到了宿主操作系统中的哪里Tmpfs Mount 支持挂载系统内存中的一部分到容器的文件系统里,不过由于内存和容器的特征,它的存储并不是持久的,其中的内容会随着容器的停止而消失bind mount方式:docker run -d --name nginx_test -v /nginx/html:/usr/share/nginx/html nginx查看容器挂在文件:docker exec nginx_test ls /usr/share/nginx/html利器 docker-composedocker-compose 是用于定义和运行多容器 Docker 应用程序的工具(集成部署),使用 docker-compose 可以高效管理容器。使用步骤:1、Dockerfile 定义应用程序的环境(定制自己的镜像源)2、docker-compose.yml 定义构成应用程序的服务,多个容器一起执行3、docker-compose up 启动并运行整个应用程序备注:Linux需单独安装docker-compose,macos和windows已经集成实战案例 - 搭建 LNMP 环境源码下载: https://github.com/zhangdejian/docker_lnmp.git 请参考我的另外一篇博客: https://learnku.com/articles/39417 (Dockerfile 方式定制 lnmp 环境)Docker 的不足必须在64位机器上运行,目前仅支持x86_64和AMD64;系统的Linux内核必须是3.8或者更新;内核必须支持cgroups和命名空间;docker对disk的管理比较有限;网络管理相对简单,主要是机遇namespace隔离;6.container随着用户进程的停止而销毁,container中的log等用户数据不方便收集。Docker 的学习资源官网: https://docs.docker.com/engine/reference/run/ 中文手册: https://docker_practice.gitee.io/zh-cn/basic_concept/image.html 菜鸟教程: https://www.runoob.com/docker/docker-tutorial.html 掘金社区: https://juejin.cn/tag/Docker 开源中国: https://www.oschina.net/question/tag/docker SegmentFault: https://segmentfault.com/t/docker 推荐入门书籍: 《Docker 技术入门与实战》 、 《Docker 进阶与实战》华为团队 看云:《Docker — 从入门到实践》 优秀文章: CentOS 安装 docker Dockerfile 方式定制 lnmp 环境 Docker 搭建 Jenkins 实现自动部署 Docker+LNMP+Jenkins+ 码云实现 PHP 代码自动化部署 Docker 操作命令大全
2023年08月12日
59 阅读
0 评论
0 点赞
2023-08-09
PHP 收藏集
收藏集PHP 收藏集(一)csdnPHP 收藏集(二)Awesome PHP其他文章ThinkPHPhttps://blog.p2hp.com/archives/11222 ThinkPHPV8.0发布——AI助力开发体验一些laravel 框架学习资源http://www.cnblogs.com/yjf512/p/4061892.html 使用laravel一分钟搭建CURD后台页面https://www.laravist.com/blog/post/programming-with-laravel-5-model-controller-view-basic-workflow Laravel教程 五:MVC的基本流程https://www.laravist.com/blog/post/programming-with-laravel-5-laravel-forms-input Laravel教程 六:表单 Formshttps://www.laravist.com/blog/post/programming-with-laravel-5-database-and-eloquent-model Laravel教程 四:数据库和Eloquenthttps://my.oschina.net/u/1186749/blog/643850 php artisan常用方法http://www.verronknowles.com/laravel-migrations-with-moloquent-and-mongodb-with-mysql-still-present/http://www.opentechguides.com/tutorials/laravel-mongodb/10/mongodb-migration.htmlhttp://blog.sina.com.cn/s/blog_a77576280102x60a.htmlhttp://www.jb51.net/article/54736.htmhttp://blog.csdn.net/iroycn/article/details/47036719http://www.jb51.net/article/60989.htmhttps://blog.p2hp.com/archives/7442https://blog.p2hp.com/archives/7392 加速你的laravel框架运行, 教你如何减少服务提供者的启动.https://blog.p2hp.com/archives/7523https://blog.p2hp.com/archives/7551 使用Laravel Packer创建laravel包脚手架https://blog.p2hp.com/archives/7853 Laravel Model 利用 Macroable 为数据模型添加宏能力https://blog.p2hp.com/archives/7829 Laravel Telescope 完美的应用调试工具https://blog.p2hp.com/archives/8110 Laravel框架的Pipeline解读。它是一个非常好用的组件,能够使代码的结构非常清晰。 Laravel的中间件机制便是基于它来实现的。通过Pipeline,可以轻松实现APO编程。https://blog.p2hp.com/archives/7883 终极Laravel应用性能检查表https://blog.p2hp.com/archives/8122 Laravel框架中使用 Repository 模式Lhttps://blog.p2hp.com/archives/8120 aravel核心解读–服务提供器(ServiceProvider)https://blog.p2hp.com/archives/8114 优化laravel数据库查询的 18 个提示https://blog.p2hp.com/archives/8821 Laravel 的 ORM 缓存包https://blog.p2hp.com/archives/8677 18 个 Laravel 8 数据库查询优化建议https://blog.p2hp.com/archives/10241 Laravel 10 现已发布!新特性一览了解 Laravel 的 Macroable 特性https://blog.p2hp.com/archives/11067https://blog.p2hp.com/archives/11065框架关于如何正确使用PHP框架及如何选择框架之我见微信开发关于微信网页授权获取用户基本信息的切入问题 微信公众平台—-带参数二维码生成和扫描事件 微信开发上传图文消息内的图片(只返回图片URL),报错41005 【微信开发】网页授权多域名解决方案服务器php在Nginx环境下进行刷新缓存立即输出,实现常驻进程轮询 php nginx 实时输出 https://blog.p2hp.com/archives/5808 解决PHP的一个长期存在的通过Opcache泄漏敏感数据的问题。 https://blog.p2hp.com/archives/5789 为PHP-FPM和nginx设置多个进程池而安全地运行多个网站https://blog.p2hp.com/archives/5778 nginx不同站点的php-fpm的PHP_ADMIN_VALUE值会覆盖其它站点值的问题!https://blog.p2hp.com/archives/5814 共享APC或OPcache:为什么多个PHP-FPM主机更好https://blog.p2hp.com/archives/7768 nginx + php做服务,在高并发的时候会出现一些错误 connect() to unix:/var/run/php-fpm.sock failed (11: Resource temporarily unavailable) 。mongodb用PHP把 图片,文件上传到 mongodb gridfs 中中间件为什么要关心PHP中间件 关于中间件的一切 漫谈php框架之中间件 在PHP中实现前置/后置中间件其他周末有空,我们来聊聊几块钱的PHP 原 PHP 在不调用构造函数的情况下创建对象 https://learnku.com/php/t/24576https://blog.p2hp.com/archives/6655 PHP加密文件解密过程详解https://blog.p2hp.com/archives/6648 PHP获取类私有属性的几种方式https://blog.p2hp.com/archives/7061【PHP】获取浏览器HTTP请求header信息、获取服务器HTTP响应header信息https://blog.p2hp.com/archives/7364 php设置跨子域名可读的cookiePHP 生成器入门 https://blog.p2hp.com/archives/7243模仿laravel,使用反射来实现自动依赖注入 https://www.jianshu.com/p/9176b12eb843https://stitcher.io/blog/php-in-2020PHP8.0 JIT介绍,及如何在PHP 8中设置JIT https://blog.p2hp.com/archives/7577如何处理 PHP 中file_get_contents 函数的警告?https://blog.p2hp.com/archives/7846Zend Engine中的函数内联-使用完全限定函数名称提高PHP程序性能 https://blog.p2hp.com/archives/7967 Zend PHP8.1发布,新特性一览 https://blog.p2hp.com/archives/8224Laravel 8更改密码功能实现 https://blog.p2hp.com/archives/8210如何优化symfony(PHP)的性能 https://blog.p2hp.com/archives/8196How Livewire works (a deep dive) https://blog.p2hp.com/archives/8190移除无用的Composer加载文件,以提升性能 https://blog.p2hp.com/archives/8178现代 PHP 数据加密/解密与Sodium扩展 https://blog.p2hp.com/archives/8174PHP–激动人心的时代即将到来,让我们来看看现代的 PHP https://blog.p2hp.com/archives/8310Modern PHP Without a Framework–现代PHP不使用框架 https://blog.p2hp.com/archives/9205PHP 8.2 新特性 https://blog.p2hp.com/archives/9144PHP mysqli 查询数据库的几个方法 https://blog.p2hp.com/archives/90632023 年的 PHP https://blog.p2hp.com/archives/10124如何延长遗留 PHP 应用程序的生命周期 https://blog.p2hp.com/archives/10122Nginx 黑魔法:使用 NGX-PHP 模块低成本实现高性能应用 https://blog.p2hp.com/archives/10540https://blog.p2hp.com/archives/10282https://blog.p2hp.com/archives/10279https://blog.p2hp.com/archives/10268spatie / invade 使用私有属性和方法的 PHP 函数 https://blog.p2hp.com/archives/11069知识点web全栈大福袋 https://www.52fun.com/13860.htmlhttps://www.itresource.org/2023/08/03/web3.0热门领域nft项目实战完结/
2023年08月09日
12 阅读
0 评论
0 点赞
1
2