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

网站开发遇到的问题免费发布信息网站大全666

网站开发遇到的问题,免费发布信息网站大全666,做视频网站什么平台好,深圳优化网站方法Docker多阶段构建是一个优秀的技术#xff0c;可以显著减少 Docker 镜像的大小#xff0c;从而加快镜像的构建速度#xff0c;并减少镜像的传输时间和存储空间。本文将详细介绍 Docker 多阶段构建的原理、用途以及示例。 Docker 多阶段构建的原理 在传统的 Docker 镜像构建…Docker多阶段构建是一个优秀的技术可以显著减少 Docker 镜像的大小从而加快镜像的构建速度并减少镜像的传输时间和存储空间。本文将详细介绍 Docker 多阶段构建的原理、用途以及示例。 Docker 多阶段构建的原理 在传统的 Docker 镜像构建中我们通常需要在 Dockerfile 中指定多个步骤每个步骤都需要添加一些新的层到镜像中。这样做的问题是每个层都会添加额外的文件和元数据到镜像中因此镜像的大小会变得非常大。当需要传输这些镜像到其他地方时这会消耗大量的时间和网络带宽。 为了解决这个问题Docker 多阶段构建提供了一种方法来构建一个 Docker 镜像该镜像只包含必要的文件和元数据而不包含多余的信息。具体来说Docker 多阶段构建允许您在同一个 Dockerfile 中定义多个阶段每个阶段可以独立地构建、测试和优化。在每个阶段结束时只需将必要的文件和元数据复制到下一个阶段并舍弃上一个阶段中的多余信息。这样您就可以在不增加镜像大小的情况下构建出一个可靠的 Docker 镜像。 Docker 多阶段构建的用途 Docker 多阶段构建的主要用途是减少 Docker 镜像的大小。由于每个阶段只包含必要的文件和元数据所以您可以显著减少 Docker 镜像的大小并加快构建速度。此外Docker 多阶段构建还提供了一种简单的方法来构建、测试和优化多个应用程序因为每个阶段都可以使用不同的环境和工具。 Docker 多阶段构建的示例 下面是一个使用 Docker 多阶段构建构建 Nginx应用程序的示例。该示例分为两个阶段第一个阶段使用 Alpine 官方镜像来构建应用程序第二个阶段使用 Alpine镜像 Nginx运行时文件来运行应用程序。 首先拉取一个alpline镜像并查看镜像的大小可以看到只有7M [rootserver159 ~]# docker pull alpine [rootserver159 ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE centos7-python v1 e6a497c56c1c 16 hours ago 526MB php-fpm v1 0474bd7488fa 39 hours ago 698MB debian latest 676aedd4776f 3 weeks ago 117MB alpine latest 8ca4688f4f35 4 weeks ago 7.34MB centos 7 eeb6ee3f44bd 2 years ago 204MB nginx 1.18.0 c2c45d506085 2 years ago 133MB随便创建一个空目录最好是空的不要有其它文件 然后编写一个Dockerfile文件 [rootserver159 alpine]# ls Dockerfile [rootserver159 alpine]# cat Dockerfile FROM alpine:latest as relay_nginx RUN sed -i s/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g /etc/apk/repositories \apk add --no-cache gcc libgcc libc-dev zlib-dev pcre-dev wget make openssl-dev \wget -c http://nginx.org/download/nginx-1.22.0.tar.gz \tar xf nginx-1.22.0.tar.gz \cd nginx-1.22.0 \./configure --prefix/usr/local/nginx --with-http_ssl_module --with-http_auth_request_module --with-http_random_index_module \make make install \rm -rf /usr/local/nginx/conf/*.default \cd ../ \rm -rf nginx-1.22.0* /var/cache/apk/*ADD ./index.html /usr/share/nginx/html/index.html EXPOSE 80 EXPOSE 443ENTRYPOINT [/usr/local/nginx/sbin/nginx,-g,daemon off;]然后构建镜像 [rootserver159 alpine]# docker build --no-cache -t nginx:alpine-1.0 .构建完以后查看我们的镜像可以看到大小为172M [rootserver159 alpine]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE nginx alpine-1.0 e096be22d040 34 seconds ago 172MB centos7-python v1 e6a497c56c1c 16 hours ago 526MB php-fpm v1 0474bd7488fa 39 hours ago 698MB debian latest 676aedd4776f 3 weeks ago 117MB alpine latest 8ca4688f4f35 4 weeks ago 7.34MB centos 7 eeb6ee3f44bd 2 years ago 204MB nginx 1.18.0 c2c45d506085 2 years ago 133MB构建一个容器查看效果 [rootserver159 alpine]# docker run --name nginx-alpine-1.0 -d -p8080:80 nginx:alpine-1.0 21fa466986ab11cfac2c8c23b4772e8c2213d83e2ffc414c289420756106d1ed去浏览器访问 可以看到容器是正常运行的 然后我们再编写Dockerfile文件多加一层镜像的构建 [rootserver159 alpine]# cat Dockerfile FROM alpine:latest as relay_nginx RUN sed -i s/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g /etc/apk/repositories \apk add --no-cache gcc libgcc libc-dev zlib-dev pcre-dev wget make openssl-dev \wget -c http://nginx.org/download/nginx-1.22.0.tar.gz \tar xf nginx-1.22.0.tar.gz \cd nginx-1.22.0 \./configure --prefix/usr/local/nginx --with-http_ssl_module --with-http_auth_request_module --with-http_random_index_module \make make install \rm -rf /usr/local/nginx/conf/*.default \cd ../ \rm -rf nginx-1.22.0* /var/cache/apk/*FROM alpine:latest as alpine_nginx RUN sed -i s/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g /etc/apk/repositories \apk add --no-cache zlib-dev pcre-dev openssl-dev \rm -rf /var/cache/apk/*COPY --fromrelay_nginx /usr/local/nginx /usr/local/nginx EXPOSE 80 EXPOSE 443ENTRYPOINT [/usr/local/nginx/sbin/nginx,-g,daemon off;]编写完毕以后我们构建一个2.0版本的镜像 [rootserver159 alpine]# docker build --no-cache -t nginx:alpine-2.0 .产看镜像 [rootserver159 alpine]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE nginx alpine-2.0 11c2c53e9585 10 seconds ago 24.1MB nginx alpine-1.0 603a2f2545fe 6 minutes ago 172MB centos7-python v1 e6a497c56c1c 16 hours ago 526MB php-fpm v1 0474bd7488fa 39 hours ago 698MB debian latest 676aedd4776f 3 weeks ago 117MB alpine latest 8ca4688f4f35 4 weeks ago 7.34MB centos 7 eeb6ee3f44bd 2 years ago 204MB nginx 1.18.0 c2c45d506085 2 years ago 133MB可以惊奇的发现我们2.0的镜像仅仅只有24M,小了好几倍 然后也用2.0的镜像生成一个容器测试一下可用性 [rootserver159 alpine]# docker run --name nginx-alpine-2.0 -d -p8081:80 nginx:alpine-2.0 73e2a462573e3c5298ad6e255a95d214aad58ce498becfcac2fde8799c796d1e然后去网页访问 说明我们的2.0版本镜像也是可以正常运行的 但是却小了好多那是因为我们构建了两层的镜像而底层的镜像会被压缩 所以这就是多层镜像构建的好处在发布的时候可以大大缩减镜像的大小 在这个基础上再定制我们自己想要的镜像就是一项很好的优化
http://www.zqtcl.cn/news/158590/

相关文章:

  • 做网站的流程前端做什么网站建设与管理专业学什么
  • 用wordpress做购物网站西安建设工程网站
  • 响应式网站免费模板下载电商怎么做如何从零开始视频
  • 江西网站开发学校联系我们网站制作
  • 做网站首页图片素材营销网站制作要素
  • 云阳网站建设百度对 wordpress 排名
  • 做电商网站需要多少时间网站建设答辩ppt
  • 营销型网站的案例江苏seo网站排名优化
  • 企业网站 备案 网站名称凡科做视频网站
  • 湘潭建设公司网站杭州网站优化
  • 工信部备案网站网站空间服务商
  • 深圳市企业网站seo营销工具桂林百姓网
  • 网站建设所需材料wordpress nginx配置文件
  • 给企业做网站运营广州制作网站公司
  • 一个网站可以有几个关键词网页游戏制作过程
  • 网站可视化后台桥西区网站建设
  • 个人怎么建设网站北京朝阳区最好的小区
  • 企业应该如何建设网站江苏润祥建设集团网站
  • 沈阳网站建设价格wordpress h1标签
  • 找别人做网站一般注意什么三亚专业做网站
  • 企业营销网站的建设罗湖做网站
  • 百度蜘蛛抓取新网站WordPress20w文章
  • 国际贸易网站有哪些可植入代码网站开发
  • 信息服务平台有哪些网站东莞网站关键词
  • 青岛网站定制手机软件开发和网站开发
  • 网站数据库地址是什么看企业网站怎么做到百度秒收
  • 南昌网站建设资讯wordpress dynamo
  • 网站建设招标样本南宁培训网站建设
  • 找回网站备案密码wordpress 2015主题
  • 网站电子商务平台建设域名查询系统