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

网站优化怎么样/如何宣传自己的网站

网站优化怎么样,如何宣传自己的网站,网站建设学习内容,遂宁网站建设华子目录 示例(在centos容器中源码编译nginx(单介构建))包准备为centos容器提供网络源添加企业7的ISO文件 提交为新的centos镜像编写dockerfile文件构建镜像如何优化自己构建的镜像大小多介构建 ldd命令基本用法示例 镜像优化方案…

华子目录

  • 示例(在centos容器中源码编译nginx(单介构建))
    • 包准备
    • 为`centos容器`提供`网络源`
      • 添加`企业7`的`ISO文件`
    • 提交为新的centos镜像
    • 编写dockerfile文件
    • 构建镜像
    • 如何优化自己构建的镜像大小
      • 多介构建
  • ldd命令
      • 基本用法
      • 示例
  • 镜像优化方案

示例(在centos容器中源码编译nginx(单介构建))

  • 单介构建:只有一个from指令

包准备

  • 上传镜像centos-7.tar.gz

  • 导入centos7镜像

[root@docker-node1 ~]# docker load -i centos-7.tar.gz
  • 上传源码包nginx-1.26.1.tar.gz
  • nginx源码包放到上下文路径下
[root@docker-node1 ~]# cp nginx-1.26.1.tar.gz docker/
[root@docker-node1 ~]# cd docker/
[root@docker-node1 docker]# ls
nginx-1.26.1.tar.gz

centos容器提供网络源

  • 宿主机光盘中的包作为容器的yum网络源
[root@docker-node1 ~]# yum install httpd -y
[root@docker-node1 ~]# vim /etc/httpd/conf/httpd.conf

在这里插入图片描述

添加企业7ISO文件

在这里插入图片描述

[root@docker-node1 ~]# mkdir /var/www/html/rhel7[root@docker-node1 ~]# mount /dev/sr
sr0  sr1[root@docker-node1 ~]# mount /dev/sr1 /var/www/html/rhel7/
[root@docker-node1 ~]# systemctl restart httpd
[root@docker-node1 ~]# ifconfig

在这里插入图片描述

  • 运行centos7镜像容器名centos
[root@docker-node1 ~]# docker run -d --name centos centos:7 sleep 10000
  • 查看centos容器详细信息
[root@docker-node1 ~]# docker inspect centos

在这里插入图片描述

  • 我们发现宿主机centos容器网络是通的
[root@docker-node1 ~]# ping 172.17.0.2
PING 172.17.0.2 (172.17.0.2) 56(84) 比特的数据。
64 比特,来自 172.17.0.2: icmp_seq=1 ttl=64 时间=0.341 毫秒
64 比特,来自 172.17.0.2: icmp_seq=2 ttl=64 时间=0.156 毫秒
64 比特,来自 172.17.0.2: icmp_seq=3 ttl=64 时间=0.070 毫秒
  • 进入centos容器添加yum源
[root@docker-node1 ~]# docker exec -it centos /bin/sh
sh-4.2# cd /etc/yum.repos.d/
sh-4.2# rm -rf *
sh-4.2# vi centos7.repo
[rhel7]
name=rhel7
baseurl=http://172.17.0.1:8080/rhel7/
gpgcheck=0
sh-4.2#     #ctrl+p+q退出不停止容器
[root@docker-node1 ~]#

提交为新的centos镜像

[root@docker-node1 ~]# docker commit -a "huazi" -m "add yum repo" centos centos:repo
[root@docker-node1 ~]# docker images centos:repo
REPOSITORY   TAG       IMAGE ID       CREATED              SIZE
centos       repo      c618983b610f   About a minute ago   204MB[root@docker-node1 ~]# docker history centos:repo
IMAGE          CREATED          CREATED BY                                       SIZE      COMMENT
c618983b610f   44 seconds ago   sleep 10000                                      72B       add yum repo
eeb6ee3f44bd   3 years ago      /bin/sh -c #(nop)  CMD ["/bin/bash"]             0B
<missing>      3 years ago      /bin/sh -c #(nop)  LABEL org.label-schema.sc…   0B
<missing>      3 years ago      /bin/sh -c #(nop) ADD file:b3ebbe8bd304723d4…   204MB

编写dockerfile文件

[root@docker-node1 ~]# cd docker
[root@docker-node1 docker]# vim dockerfile
FROM centos:repo
LABEL Mail=huazi@huazi.org
ADD nginx-1.26.1.tar.gz /mnt
WORKDIR /mnt/nginx-1.26.1
RUN yum install gcc make pcre-devel openssl-devel -y
RUN ./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_stub_status_module
RUN make
RUN make install
EXPOSE 80 443
VOLUME ["/usr/local/nginx/html"]
CMD ["/usr/local/nginx/sbin/nginx","-g","daemon off"][root@docker-node1 docker]# ls
dockerfile  nginx-1.26.1.tar.gz

构建镜像

[root@docker-node1 docker]# docker build -t nginx:centos7 .

在这里插入图片描述

[root@docker-node1 docker]# docker history nginx:centos7
IMAGE          CREATED              CREATED BY                                       SIZE      COMMENT
939f29314f9a   About a minute ago   CMD ["/usr/local/nginx/sbin/nginx" "-g" "dae…   0B        buildkit.dockerfile.v0
<missing>      About a minute ago   VOLUME [/usr/local/nginx/html]                   0B        buildkit.dockerfile.v0
<missing>      About a minute ago   EXPOSE map[443/tcp:{} 80/tcp:{}]                 0B        buildkit.dockerfile.v0
<missing>      About a minute ago   RUN /bin/sh -c make install # buildkit           6.11MB    buildkit.dockerfile.v0
<missing>      About a minute ago   RUN /bin/sh -c make # buildkit                   20.6MB    buildkit.dockerfile.v0
<missing>      About a minute ago   RUN /bin/sh -c ./configure --prefix=/usr/loc…   78.9kB    buildkit.dockerfile.v0
<missing>      About a minute ago   RUN /bin/sh -c yum install gcc make pcre-dev…   118MB     buildkit.dockerfile.v0
<missing>      About a minute ago   WORKDIR /mnt/nginx-1.26.1                        0B        buildkit.dockerfile.v0
<missing>      About a minute ago   ADD nginx-1.26.1.tar.gz /mnt # buildkit          7.35MB    buildkit.dockerfile.v0
<missing>      About a minute ago   LABEL Mail=huazi@huazi.org                       0B        buildkit.dockerfile.v0
<missing>      About a minute ago   /bin/sh                                          68B       add centos7.repo
<missing>      3 years ago          /bin/sh -c #(nop)  CMD ["/bin/bash"]             0B
<missing>      3 years ago          /bin/sh -c #(nop)  LABEL org.label-schema.sc…   0B
<missing>      3 years ago          /bin/sh -c #(nop) ADD file:b3ebbe8bd304723d4…   204MB
[root@docker-node1 docker]# docker images nginx:centos7
REPOSITORY   TAG       IMAGE ID       CREATED              SIZE
nginx        centos7   939f29314f9a   About a minute ago   356MB
  • 我们发现构建出来的镜像大小356MB

如何优化自己构建的镜像大小

  • 因为一个指令一层,所以我们可以减少层数,来优化镜像大小
[root@docker-node1 docker]# vim dockerfile
FROM centos:repo
LABEL Mail=huazi@huazi.org
ADD nginx-1.26.1.tar.gz /mnt
WORKDIR /mnt/nginx-1.26.1
RUN yum install gcc make pcre-devel openssl-devel -y && ./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_stub_status_module && make && make install && rm -rf /mnt/nginx-1.26.1 && yum clean all
EXPOSE 80 443
VOLUME ["/usr/local/nginx/html"]
CMD ["/usr/local/nginx/sbin/nginx","-g","daemon off"]
[root@docker-node1 docker]# docker build -t nginx2:centos7 .
[root@docker-node1 docker]# docker images nginx2:centos7
REPOSITORY   TAG       IMAGE ID       CREATED          SIZE
nginx2       centos7   643164382b66   41 seconds ago   292MB
  • 我们发现镜像大小变小了

多介构建

  • 一个dockerfile中有多个from指令
FROM centos:repo AS build  #AS标记为build阶段
LABEL Mail=huazi@huazi.org
ADD nginx-1.26.1.tar.gz /mnt
WORKDIR /mnt/nginx-1.26.1
RUN yum install gcc make pcre-devel openssl-devel -y && ./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_stub_status_module && make && make install && rm -rf /mnt/nginx-1.26.1 && yum clean allFROM centos:repo
LABEL mail=huazi@huazi.org
COPY --from=build /usr/local/nginx  /usr/local/nginx  #将build阶段中的/usr/local/nginx复制到当前阶段中的/usr/local/nginx
EXPOSE 80 443
VOLUME ["/usr/local/nginx/html"]
CMD ["/usr/local/nginx/sbin/nginx","-g","daemon off"]
[root@docker-node1 docker]# docker build -t nginx3:centos7 .
[root@docker-node1 docker]# docker images nginx3:centos7
REPOSITORY   TAG       IMAGE ID       CREATED          SIZE
nginx3       centos7   27a5c3dd15c1   14 seconds ago   210MB
  • 我们发现镜像大小变小了

ldd命令

当你对一个可执行文件共享库使用ldd命令时,它会列出该文件所依赖的所有共享库,以及这些共享库文件系统中的路径

基本用法

ldd <可执行文件或共享库>

示例

假设你有一个名为my_program可执行文件,你可以使用以下命令来查看它的共享库依赖关系

ldd my_program

输出可能类似于:

    linux-vdso.so.1 (0x00007fffdc9d7000)libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f8a6c61c000)libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f8a6c22b000)/lib64/ld-linux-x86-64.so.2 (0x00007f8a6c91b000)

这里,my_program依赖于libm.so.6(数学库)、libc.so.6(C标准库)和ld-linux-x86-64.so.2(动态链接器/加载器)

镜像优化方案

  • 选择最精简基础镜像
  • 减少镜像层数
  • 清理镜像构建的中间产物

相关文章:

docker镜像构建企业级示例

华子目录 示例&#xff08;在centos容器中源码编译nginx&#xff08;单介构建&#xff09;&#xff09;包准备为centos容器提供网络源添加企业7的ISO文件 提交为新的centos镜像编写dockerfile文件构建镜像如何优化自己构建的镜像大小多介构建 ldd命令基本用法示例 镜像优化方案…...

【源码】Sharding-JDBC源码分析之SQL中读写分离动态策略、数据库发现规则及DatabaseDiscoverySQLRouter路由的原理

Sharding-JDBC系列 1、Sharding-JDBC分库分表的基本使用 2、Sharding-JDBC分库分表之SpringBoot分片策略 3、Sharding-JDBC分库分表之SpringBoot主从配置 4、SpringBoot集成Sharding-JDBC-5.3.0分库分表 5、SpringBoot集成Sharding-JDBC-5.3.0实现按月动态建表分表 6、【…...

Spark 之 partitons

Listing leaf files and directories 分析其并行化 org.apache.spark.util.HadoopFSUtils sc.parallelize(paths, numParallelism).mapPartitions { pathsEachPartition >val hadoopConf serializableConfiguration.valuepathsEachPartition.map { path >val leafFiles…...

使用Zerotier配置虚拟局域网,踏坑

配置虚拟局域网有多种方式&#xff0c;包括带桌面的和纯网络的。 一、带桌面的&#xff08;不是本次重点&#xff09; 常见工具&#xff1a;向日葵、todesk、anydesk、restDesk 前两者是常见商业工具&#xff0c;anydesk好像很轻&#xff0c;restDesk是开源项目&#xff0c;…...

【优选算法 二分查找】二分查找算法模板详解:二分查找 & 在排序数组中查找元素的第一个和最后一个位置

二分查找 题目描述 题目解析 暴力解法 我们可以从左往右遍历一次数组&#xff0c;如果存在 target 则返回数组的下标&#xff0c;否则返回 -1&#xff1b; 时间复杂度 O(N)&#xff0c;因为没有利用数组有序的特点&#xff0c;每次比较只能舍弃一个要比较的数&…...

gitlab 生成并设置 ssh key

一、介绍 &#x1f3af; 本文主要介绍 SSH Key 的生成方法&#xff0c;以及如何在GitLab上添加SSH Key。GitLab 使用SSH协议与Git 进行安全通信。当您使用 SSH密钥 对 GitLab远程服务器进行身份验证时&#xff0c;您不需要每次都提供您的用户名和密码。SSH使用两个密钥&#x…...

计算机视觉在科学研究(数字化)中的实际应用

计算机视觉是一种利用计算机技术来解析和理解图像和视频的方法。.随着计算机技术的不断发展&#xff0c;计算机视觉被广泛应用于科学研究领域&#xff0c;为科学家提供了无限的可能。 一、生命科学领域 在生命科学领域&#xff0c;计算机视觉被广泛用于图像识别、分类和测量等…...

移动应用开发课程第六次实验:为实验2添加登陆页面,用SQList存储好友基本信息

1、在Android Studio中&#xff0c;请在第二次实验成果的基础上完成以下实验要求。 向右滑动 请添加登录页面。在登录页面中&#xff0c;如果用户输入的用户名和密码正确&#xff0c;则跳转至如上图所示的好友列表&#xff0c;并记录用户的登录信息&#xff0c;在用户第一次登…...

nextjs增加系统路径前缀(basePath)适配方案

在 Next.js 中&#xff0c;路由是通过文件夹结构来定义的&#xff0c;使用类似于 History 模式的 URL 结构。所以如果想通过nginx来代理一个nextjs开发的系统&#xff0c; 除非直接使用跟路径/来进行代理&#xff0c;否则代理将非常麻烦&#xff0c;这时添加basePath就非常有必…...

嵌入式蓝桥杯学习拓展 LCD翻转显示

通过配置SS和GS两个标志位&#xff0c;实现扫描方向的切换。 将lcd.c的REG_932X_Init函数进行部分修改。 将LCD_WriteReg(R1, 0x0000);修改为LCD_WriteReg(R1,0x0100); 将LCD_WriteReg(R96, 0x2700); 修改为LCD_WriteReg(R96, 0xA700); void REG_932X_Init1(void) {LCD_Wr…...

学习threejs,实现配合使用WebWorker

&#x1f468;‍⚕️ 主页&#xff1a; gis分享者 &#x1f468;‍⚕️ 感谢各位大佬 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍⚕️ 收录于专栏&#xff1a;threejs gis工程师 文章目录 一、&#x1f340;前言1.1 ☘️WebWorker web端多线程 二、…...

TDengine 新功能 复合主键

1. 简介 从 TDengine 3.3.0.0 版本之后&#xff0c;新增了复合主键的功能。 TDengine 原来的时间列是不允许有重复时间戳的&#xff0c;有了复合主键功能后&#xff0c;时间列即允许有重复&#xff0c;重复后的时间戳按紧跟其后第二列主键列的值来确定唯一性。 此功能的常用…...

JVM 面试题

Java 虚拟机&#xff08;JVM&#xff09;是运行 Java 程序的引擎&#xff0c;它是 Java 语言 “一次编译&#xff0c;处处运行” 的核心技术。JVM 的主要任务是将 Java 字节码&#xff08;Bytecode&#xff09;解释成机器码并执行&#xff0c;负责内存管理、线程管理、垃圾回收…...

组件上传图片不回显问题

import { Plus } from "element-plus/icons-vue"; // 图片上传 const img_add ref([]); function httpRequest_add(option) {let dataForm new FormData();dataForm.append("file", option.file);dataForm.append("id", user.data.id);axios({…...

【JavaWeb后端学习笔记】Spring AOP面向切面编程

AOP 1、Spring AOP概述2、SpringAOP快速入门3、SpringAOP核心概念4、通知类型5、通知顺序6、切入点表达式6.1 execution方式6.2 annotation方式 7、连接点 1、Spring AOP概述 AOP&#xff1a;Aspect Oriented Programming&#xff0c;面向特定方法编程。 AOP是通过动态代理技术…...

6.584-Lab5B

6.584-Lab5B Reference CodeReference BlogHomeworkMyself Code Sharded Key/Value Service 梗概 这个图是我从上面参考blog中拿来的&#xff0c;觉得做的不错&#xff0c;借助这张图来讲解一下需要一个什么样的 Service。 ShardCtrler Client&#xff1a; 接收来自客户发出的命…...

OceanBase 的探索与实践

作者&#xff1a;来自 vivo 互联网数据库团队- Xu Shaohui 本文总结了目前我们遇到的痛点问题并通过 OceanBase 的技术方案解决了这些痛点问题&#xff0c;完整的描述了 OceanBase 的实施落地&#xff0c;通过迁移到 OceanBase 实践案例中遇到的问题与解决方案让大家能更好的了…...

安卓调试环境搭建

前言 前段时间电脑重装了系统&#xff0c;最近准备调试一个apk&#xff0c;没想到装环境的过程并不顺利&#xff0c;很让人火大&#xff0c;于是记录一下。 反编译工具下载 下载apktool.bat和apktool.jar 官网地址&#xff1a;https://ibotpeaches.github.io/Apktool/install…...

动画Lottie

Lottie简介 Lottie是一个Airbnb 开发的用于Android&#xff0c;iOS&#xff0c;Web和Windows的库&#xff0c;用于解析使用Bodymovin导出为json的Adobe After Effects动画&#xff0c;并在移动设备和网络上呈现 — GitHub Lottie主要特性 After Effects 兼容性&#xff1a; …...

C++感受14-Hello Object 封装版 - 上

1. 封装即约束——封装和派生、多态的本质区别 一门计算机语言&#xff0c;要如何帮助程序员写出优秀的代码&#xff1f;两个方法&#xff1a;一是给程序员更多能力&#xff0c;二是给程序员更多约束。之前我们学习的派生和多态&#xff0c;更多的是给我们技能&#xff0c;而封…...

网络安全中大数据和人工智能应用实践

传统的网络安全防护手段主要是通过单点的网络安全设备&#xff0c;随着网络攻击的方式和手段不断的变化&#xff0c;大数据和人工智能技术也在最近十年飞速地发展&#xff0c;网络安全防护也逐渐开始拥抱大数据和人工智能。传统的安全设备和防护手段容易形成数据孤岛&#xff0…...

RISC-V架构下OP-TEE 安全系统实践

安全之安全(security)博客目录导读 本篇博客,我们聚焦RISC-V 2024中国峰会上的RISC-V和OP-TEE结合的一个安全系统实践,来自芯来科技桂兵老师。 关于RISC-V TEE(可信执行环境)的相关方案,如感兴趣可参考R...

40分钟学 Go 语言高并发:【实战】分布式缓存系统

【实战课程】分布式缓存系统 一、整体架构设计 首先&#xff0c;让我们通过架构图了解分布式缓存系统的整体设计&#xff1a; 核心组件 组件名称功能描述技术选型负载均衡层请求分发、节点选择一致性哈希缓存节点数据存储、过期处理内存存储 持久化同步机制节点间数据同步…...

[创业之路-186]:《华为战略管理法-DSTE实战体系》-1-为什么UTStarcom死了,华为却活了,而且越活越好?

目录 前言 一、市场定位与战略选择 二、技术创新能力 三、企业文化与团队建设 四、应对危机的能力 五、客户为中心的理念 六、市场适应性与战略灵活性 七、技术创新与研发投入 八、企业文化与团队建设 九、应对危机的能力 前言 UT斯达康&#xff08;UTStarcom&#…...

python如何多行注释

在Python中&#xff0c;多行注释通常有两种方式&#xff1a; 使用三个单引号&#xff08;&#xff09;或三个双引号&#xff08;"""&#xff09;来创建多行字符串&#xff0c;这可以被用来作为多行注释。这种方式在Python中实际上是创建了一个多行的字符串对象…...

前端工程化面试题目常见

前端工程化面试常见题目包括&#xff1a; • 谈谈你对WebPack的认识。 • Webpack打包的流程是什么&#xff1f; • 说说你工作中几个常用的loader。 • 说说HtmlWebpackPlugin插件的作用。 • Webpack支持的脚本模块规范有哪些&#xff1f; • Webpack和gulp/grunt相比有什么特…...

定点数的乘除运算

原码一位乘法 乘积的符号由两个数的符号位异或而成。&#xff08;不参与运算&#xff09;被乘数和乘数均取绝对值参与运算&#xff0c;看作无符号数。乘数的最低位为Yn&#xff1a; 若Yn1&#xff0c;则部分积加上被乘数|x|&#xff0c;然后逻辑右移一位&#xff1b;若Yn0&…...

页面置换算法模拟 最近最久未使用(LRU)算法

最近最久未使用&#xff08;LRU&#xff09;算法是一种基于页面访问历史的页面置换算法。它选择最久未使用的页面进行置换。当需要访问一个不在内存中的页面时&#xff0c;如果内存已满&#xff0c;则选择最久未使用的页面进行置换。LRU算法通过记录页面的访问时间戳来判断页面…...

Ubuntu与Centos系统有何区别?

Ubuntu和CentOS都是基于Linux内核的操作系统&#xff0c;但它们在设计理念、使用场景和技术实现上有显著的区别。以下是详细的对比&#xff1a; 1. 基础和发行版本 Ubuntu&#xff1a; 基于Debian&#xff0c;使用.deb包管理系统。包含两个主要版本&#xff1a; LTS&#xff…...

RK3568平台开发系列讲解(pinctrl 子系统篇)pinctrl_debug

🚀返回专栏总目录 文章目录 1. Overview2. debug信息2.1 pinctrl-devices2.2. pinctrl-handles2.3. pinctrl-handles3. debug信息3.1. 查看(pinctrl_register_pins)注册了哪些pins3.2. 查看pin groups;3.3. 查看每种functions所占用的gpio groups信息:3.4. pinconf沉淀、…...