首页 > 其他分享 >Docker 镜像减少体积的思路和方法

Docker 镜像减少体积的思路和方法

时间:2023-05-26 18:13:16浏览次数:40  
标签:文件 方式 nodejs 体积 镜像 Docker 减少

Docker 镜像减少体积的思路和方法


背景

有一个项目感觉镜像有点大
这边同事喊着一起帮忙处理一下.
今天基本上就在客户现场进行处理了. 
想着应该把自己想到的东西整理一下.

整体思路

1. 清理dockerfile 同级目录内的文件, 仅保留必须文件
   docker build 时会进行send file的操作, 不进行send 能够提高镜像制作的速度. 
2. 通过.dockerignore 的方式减少打包进入到系统中的文件
   通过 ./相对路径/xxx/支持 * 等的方式不将文件打入到镜像中. 避免镜像过于庞大. 
3. 通过分阶段构建, 先将必要的比如nodejs, 语言, 字体等基于OpenJDK制作成一个nodejs的镜像.
   通过分阶段构建, 可以减少镜像的总体时间. 业务镜像可以From nodejs的镜像实现快速打包. 
4. 分层构建. 按照业务进行拆分. 可以横向和纵向拆分. 
   业务可以在一层, 也可以是多层. 拆分SU的话能够极大的减少的镜像的体积.
5. 导出时采用 docker save images:tag |gzip > image_withCOmpress.tar 
   这样方式能够达到37%到45%的压缩率. 虽然可能会增加50%的导出时间, 但是网络消耗时间会有极大的提升. 

部分细节

1. 复制文件进入镜像后, 必须在同一层执行删除, 如果进入第二层再删除, 镜像文件就不会有缩减了. 
2. 尽量使用ADD的方式, 避免使用方式一里面的COPY方式. 避免组件浪费磁盘空间. 
3. .dockerignore 的方式很重要, 需要严格进行处理和学习.  根据业务来处理. 支持
4. 每一步骤都需要进行time 或者是留下痕迹. 

标签:文件,方式,nodejs,体积,镜像,Docker,减少
From: https://www.cnblogs.com/jinanxiaolaohu/p/17435478.html

相关文章

  • docker 安装elasticsearch7.9 和 SkyWalkin
    1、相关地址:官网:https://skywalking.apache.org/下载:https://skywalking.apache.org/downloads/Github:https://github.com/apache/skywalking文档:https://skywalking.apache.org/docs/main/v9.1.0/readme/ 其他版本文档,先进https://skywalking.apache.org/docs/main/,选择版本,查......
  • docker 快速部署 Jenkins
    version:'3'services:jenkins:image:jenkins/jenkinscontainer_name:myjenkinsrestart:alwayshostname:myjenkins_hostports:-18181:8080#界面端口-18182:50000#apivolumes:-./jenkins_mount:/var......
  • 宿主机套用 docker 容器中安装 PHP 的开发环境
    docker可以把运行环境整体打包,但是在开发时,IDE往往还要指定宿主机上的PHP可执行文件,这样,安装php扩展时,要装两遍,比较麻烦.如果在宿主机上运行容器中的命令?可以借助dockerexec-it<container_name><command><args>命令,写个名为php的shell脚本,里面写入这行代......
  • 超低功耗段码LCD液晶显示屏驱动IC-VKL144A/B QFN48 超小体积封装,可完全替代PCF8551适
    VKL144A/B概述:VKL144A/B是一个点阵式存储映射的LCD驱动器,可支持最大144点(36SEGx4COM)的LCD屏。单片机可通过I2C接口配置显示参数和读写显示数据,可配置4种功耗模式,也可通过关显示和关振荡器进入省电模式。其高抗干扰,低功耗的特性适用于水电气表以及工控仪表类产品。QT921功能特点......
  • docker部署gitlab私有仓库
    官方文档https://docs.gitlab.com/ee/install/docker.html编写docker-compose文件version:'3.6'services:web:image:'gitlab/gitlab-ee:latest'restart:alwayshostname:'192.168.31.160'ports:-'5111:80&......
  • 动力节点Docker实战入门教程(4)Docker容陈可人
    根据B站上动力节点的最新版Docker教程整理了学习笔记,持续更新中~4Docker容器4.1容器基础4.1.1容器启动流程通过dockerrun命令可以启动运行一个容器。该命令在执行时首先会在本地查找指定的镜像,如果找到了,则直接启动,否则会到镜像中心查找。如果镜像中心存在该镜像,则会下载到本地......
  • 修改docker默认存储路径
    docker消耗内存太严重!!必须申请一个大硬盘,然后修改默认存储路径  停止docker服务servicedockerstopcopy数据到新的存放路径cp-r/var/lib/docker/* /data/docker重命名/var/lib/docker  mv/var/lib/docker/var/lib/dockerbak创建软连接ln-......
  • 离线安装docker-compose
    1.github下载版本https://github.com/docker/compose/releases 2.解压  3. 移到指定目录mvdocker-compose-linux-x86_64/usr/local/bin///修改文件名mvdocker-compose-linux-x86_64docker-compose//授权sudochmod+x/usr/local/bin/docker-compose//查......
  • docker login harbor x509: certificate signed by unknown authority
    前言dockerloginharborx509:certificatesignedbyunknownauthority解决打开/etc/docker/daemon.json,如果没有这个文件新增即可vim/etc/docker/daemon.json加入insecure-registries{"insecure-registries":["harbor.xxxx.com:1111"]}重启dockersudo......
  • Docker - 安装tomcat
     搜索tomcat镜像dockersearchtomcat拉取镜像dockerpulltomcat:[tag]拉取tomcat8dockerpulltomcat:8运行容器dockerrun-d-p8080:8080--nametomcat_hellotomcat:8-d:以后台方式运行-p:8080:8080:端口映射到主机的8080端口--name:将容器命名为tomcat_hello访问界......