当前位置: 首页 > news >正文

猪八戒网做网站被骗个人网站有商业内容备案

猪八戒网做网站被骗,个人网站有商业内容备案,酒店网站开发合同范本,济南济阳哪有做网站的说在前面 在40岁老架构师 尼恩的读者交流群(50)中#xff0c;面试题是一个非常、非常高频的交流话题。 最近#xff0c;有小伙伴面试极兔时#xff0c;遇到一个面试题#xff1a; 如果优化 Dockerfile#xff1f; 小伙伴没有回答好#xff0c;只是提到了减少镜像层数。…说在前面 在40岁老架构师 尼恩的读者交流群(50)中面试题是一个非常、非常高频的交流话题。 最近有小伙伴面试极兔时遇到一个面试题 如果优化 Dockerfile 小伙伴没有回答好只是提到了减少镜像层数。 一般来说面试的小伙伴大部分都会说 使用更小的基础镜像 比如 alpine.减少镜像层数 比如 使用 符号将命令链接起来。给基础镜像打上 安全补丁。 但这些其实都是单点的优化。优化 Dockerfile 的核心是 合理分层、构建一个精良的基础镜像。 这里尼恩给大家做一下系统化、体系化的梳理使得大家可以充分展示一下大家雄厚的 “技术肌肉”让面试官爱到 “不能自已、口水直流”。 也一并把这个题目以及参考答案收入咱们的 《尼恩Java面试宝典》V46版本供后面的小伙伴参考提升大家的 3高 架构、设计、开发水平。 注本文以 PDF 持续更新最新尼恩 架构笔记、面试题 的PDF文件请从这里获取码云 为什么要优化镜像 首先回到起点。为啥要优化 镜像优化镜像的好处是 一个小镜像有什么好处: 分发更快存储更少加载更快。镜像臃肿带来了什么问题: 存储过多分发更慢且浪费带宽更多。 镜像的构成 其次来看看镜像的构成。从两个维度来看 俯瞰镜像: 就是一个删减版的操作系统。侧看镜像: 由一层层的 layer 堆叠而成 那么问题来了 应该如何优化镜像 举个例子 docker build Dockerfile v1 # v1 FROM nginx:1.15-alpine RUN echo hello RUN echo demo best practise ENTRYPOINT [ /bin/sh ]Dockerfile v2 # v2 FROM nginx:1.15-alpine RUN echo hello RUN echo demo best practise ENTRYPOINT [ /bin/sh ]1st build 全新构建 # docker build -t demo:0.0.1 . Sending build context to Docker daemon 2.048kB Step 1/4 : FROM nginx:1.15-alpine--- 9a2868cac230 Step 2/4 : RUN echo hello--- Running in d301b4b3ed55 hello Removing intermediate container d301b4b3ed55--- 6dd2a7773bbc Step 3/4 : RUN echo demo best practise--- Running in e3084037668e demo best practise Removing intermediate container e3084037668e--- 4588ecf9837a Step 4/4 : ENTRYPOINT [ /bin/sh ]--- Running in d63f460347ff Removing intermediate container d63f460347ff--- 77b52d828f21 Successfully built 77b52d828f21 Successfully tagged demo:0.0.12nd build Dockerfile 与 1st build 完全一致 命令仅修改 build tag , 从 0.0.1 到 0.0.2 # docker build -t demo:0.0.2 . Sending build context to Docker daemon 4.096kB Step 1/4 : FROM nginx:1.15-alpine--- 9a2868cac230 Step 2/4 : RUN echo hello--- Using cache--- 6dd2a7773bbc Step 3/4 : RUN echo demo best practise--- Using cache--- 4588ecf9837a Step 4/4 : ENTRYPOINT [ /bin/sh ]--- Using cache--- 77b52d828f21 Successfully built 77b52d828f21 Successfully tagged demo:0.0.2可以看到 每层 layer 都使用 cache ( --- Using cache) 并未重新构建。我们可以通过 docker image ls |grep demo 看到 demo:0.0.1 与 demo:0.0.2 的 layer hash 是相同。 所以从根本上来说 这两个镜像就是同一个镜像虽然都是 build 出来的。 3rd build 这次 我们将Dockerfile 02的 第三层 RUN echo demo best practise 变更为 RUN echo demo best practise 02 docker build -t demo:0.0.3 . Sending build context to Docker daemon 4.608kB Step 1/4 : FROM nginx:1.15-alpine--- 9a2868cac230 Step 2/4 : RUN echo hello--- Using cache--- 6dd2a7773bbc Step 3/4 : RUN echo demo best practise 02--- Running in c55f94e217bd demo best practise 02 Removing intermediate container c55f94e217bd--- 46992ea04f49 Step 4/4 : ENTRYPOINT [ /bin/sh ]--- Running in f176830cf445 Removing intermediate container f176830cf445--- 2e2043b7f3cb Successfully built 2e2043b7f3cb Successfully tagged demo:0.0.3可以看到 第二层仍然使用 cache但是第三层已经生成了新的 hash 了虽然第四层的操作没有变更但是由于上层的镜像已经变化了所以第四层本身也发生了变化。 注意: 每层在 build 的时候都是依赖于上册 --- Running in f176830cf445。 4th build 第四次构建 这次使用 --no-cache 不使用缓存 模拟在另一台电脑上进行 build 。 # docker build -t demo:0.0.4 --no-cache . Sending build context to Docker daemon 5.632kB Step 1/4 : FROM nginx:1.15-alpine--- 9a2868cac230 Step 2/4 : RUN echo hello--- Running in 7ecbed95c4cd hello Removing intermediate container 7ecbed95c4cd--- a1c998781f2e Step 3/4 : RUN echo demo best practise 02--- Running in e90dae9440c2 demo best practise 02 Removing intermediate container e90dae9440c2--- 09bf3b4238b8 Step 4/4 : ENTRYPOINT [ /bin/sh ]--- Running in 2ec19670cb14 Removing intermediate container 2ec19670cb14--- 9a552fa08f73 Successfully built 9a552fa08f73 Successfully tagged demo:0.0.4可以看到 虽然和 3rd build 使用的 Dockerfile 相同 但由于没有缓存每一层都是重新 build 的。虽然 demo:0.0.3 和 demo:0.0.4 在功能上是一致的。但是 他们的 layer 不同 从根本上来说他们是不同的镜像。 结论 1. 合理分层、构建一个精良的基础镜像 一个相对固定的 build 环境善用 cache构建 自己的基础镜像其中就包括了 a. 安全补丁 b. 权限限制 c. 基础库依赖安装 d. 等… 2. 精简为美一屋不扫何以扫天下 使用 .dockerignore 保持 context 干净容器镜像环境清理 a. 缓存清理 b. multi stage build 尼恩提示以上答案所包含的技术细节比较多具体请参见《尼恩Java面试宝典》最新版。 参考文献 docker storage driver: https://docs.docker.com/storage/storagedriver/dockerfile best practices: https://docs.docker.com/develop/develop-images/dockerfile_best-practices/multi-stage: https://docs.docker.com/develop/develop-images/multistage-build/ 推荐阅读 《响应式圣经10W字实现Spring响应式编程自由》 《全链路异步让你的 SpringCloud 性能优化10倍》 《Linux命令大全2W多字一次实现Linux自由》 《网易二面CPU狂飙900%该怎么处理》 《阿里二面千万级、亿级数据如何性能优化 教科书级 答案来了》 《峰值21WQps、亿级DAU小游戏《羊了个羊》是怎么架构的》 《场景题假设10W人突访你的系统如何做到不 雪崩》 《2个大厂 100亿级 超大流量 红包 架构方案》 《Nginx面试题史上最全 持续更新》 《K8S面试题史上最全 持续更新》 《操作系统面试题史上最全、持续更新》 《Docker面试题史上最全 持续更新》 《Springcloud gateway 底层原理、核心实战 (史上最全)》 《Flux、Mono、Reactor 实战史上最全》 《sentinel 史上最全》 《Nacos (史上最全)》 《TCP协议详解 (史上最全)》 《分库分表 Sharding-JDBC 底层原理、核心实战史上最全》 《clickhouse 超底层原理 高可用实操 史上最全》 《nacos高可用图解秒懂史上最全》 《队列之王 Disruptor 原理、架构、源码 一文穿透》 《环形队列、 条带环形队列 Striped-RingBuffer 史上最全》 《一文搞定SpringBoot、SLF4j、Log4j、Logback、Netty之间混乱关系史上最全》 《单例模式史上最全》 《红黑树 图解 秒懂 史上最全》 《分布式事务 秒懂》 《缓存之王Caffeine 源码、架构、原理史上最全10W字 超级长文》 《缓存之王Caffeine 的使用史上最全》 《Java Agent 探针、字节码增强 ByteBuddy史上最全》 《Docker原理图解秒懂史上最全》 《Redis分布式锁图解 - 秒懂 - 史上最全》 《Zookeeper 分布式锁 - 图解 - 秒懂》 《Zookeeper Curator 事件监听 - 10分钟看懂》 《Netty 粘包 拆包 | 史上最全解读》 《Netty 100万级高并发服务器配置》 《Springcloud 高并发 配置 一文全懂》
http://www.w-s-a.com/news/839850/

相关文章:

  • 搭建企业网站流程保定徐水网站建设
  • 建设单位到江川区住房和城乡建设局网站伦敦 wordpress 设计
  • 响应式网站的服务麦德龙网站建设目标
  • 做国外单的网站叫什么海南省海口市网站建设
  • 杭州响应式网站案例wordpress5.2.2
  • 网站建设运营维护合同wordpress资源搜索插件
  • 国外网站流量查询东莞网站建设教程
  • 餐饮类网站建设达到的作用东莞工程建设交易中心网
  • 网站设计 知识产权湖北网站建设xiduyun
  • 猫咪网站模版下载中国风 古典 红色 网站源代码
  • 个人网站备案模板制作网站首页
  • 潍坊正规建设网站网站建设设计作业
  • 推荐一下网站谢谢辽宁住房城乡建设部官方网站
  • 网站文件大小英选 网站开发
  • 济南建网站哪家好wordpress编辑器排行
  • 在福州做搬家网站多少钱画册设计网站有哪些
  • 如何让别人浏览我做的网站哪些方法可以建设网站
  • 网站建设与管理网络推广的优点
  • 美食网站的设计与制作做网站的电销话术
  • 中国档案网站建设现状研究陕西建设厅执业资格注册中心网站
  • 网站建设的内容管理怎么用ps切片在dw里做网站
  • 建设婚恋网站用什么搭建涿州网站开发
  • 做知识内容的网站与app哈尔滨哪里有做网站的
  • 青岛企业网站建站模板百度网站建设推广
  • 做360网站中保存的图片存在哪里个人建立网站要多少钱
  • 网站安装部署无锡做网站的公司
  • 怎么将网站做成小程序安装wordpress到服务器
  • 企业网站建设的四大因素沈阳网站建设招标公司
  • wordpress仿站开发公司网站策划宣传
  • 金乡县网站开发网站开发三个流程