修改docker镜像版本,容器大小缩小10%!

简介: `shigen`,一位专注于Java、Python、Vue和Shell的博主,分享其通过修改Docker镜像版本实现容器瘦身的技巧。将服务从`1.0.0`更新至`1.0.1`,基于Alpine版Docker镜像,容器体积减小至原来的10%。文章展示了问题背景、选择轻量级镜像的原因及步骤,包括Docker镜像版本对比、构建和启动新容器的过程,并证实功能未受影响。`file-server`更新将发布在GitHub上,期待用户试用。一起学习,每天进步!

shigen坚持更新文章的博客写手,擅长Java、python、vue、shell等编程语言和各种应用程序、脚本的开发。记录成长,分享认知,留住感动。
个人IP:shigen

是的,你看的没错:修改docker镜像的版本,我的容器大小缩小到了10%。效果如下:

效果对比

其中,1.0.0属于老版本。

好的,进入正题。之前开源的工具开源的局域网文件共享工具更新到v1.0啦,相信伙伴们或多或少有使用过。

🗂「file-server」是一个开箱即用的局域网文件共享工具,扫码即可上传文件,点击即可下载文件

也经过了多轮的更新,目前最新的版本是1.0.0,引入了docker容器,简化服务的部署。但是在我的md中,也提到了一个问题:

docker景象存在的问题

也就是我的容器体积太大了。众所周知,这是一个小服务,这么大的体积,着实让人着急!而且,遇到了在外边想要多设备同步文件,真的太麻烦了。

昨天去市民之家,想要在电脑上打印文件,可把我愁死了!最后用的还是微信文件传输。

所以,我上午想了一下我的觉得我的【file-server】服务很不错了,我为什么局限在局域网呢,不能放在公网吗?局域网的优势在于省流量、安全;公网则可以实现任何地方任何网络都可以访问。所以说干就干。

先列举一下问题:

  • 容器的瘦身
  • 服务的安全,我并不是任何人都可以访问

摆在眼前的就是【容器瘦身】问题。参考了文章:在Docker中部署Python项目,以及压缩Docker镜像大小

为此,我特意查询了docker各个容器版本的区别:

镜像版本 特点
Alpine 轻量级,体积小,适合构建精简容器
Slim 基于 Debian,相对小巧,去除不必要软件包
Stretch Debian 稳定版本,包含较新软件包和库
Buster Debian 下一个稳定版本,提供更新软件包和库
Jessie Debian 旧版本,不再提供官方支持
Bullseye Debian 下一个测试版本,包含最新软件包和库

最终选择了alpine版本作为容器的基础镜像版本。

修改docker镜像版本

修改docker镜像版本

重新构建

docker build -t file-server:1.0.1 .

构建过程稍微漫长,建议提前下载好基础的镜像版本再去构建。

构建过程

启动容器

$ docker run -d -p 9000:9000 --name file-server-1-0-1 -v $(pwd)/file:/app/upload file-server:1.0.1
03e7463c3967b1a32304c4e19473d4153e4a5bc6b5ee23a4b6a6b82f5f25656d

功能验证

功能验证-文件列表

尝试上传和下载,都没有任何的问题。

在此,file-server的镜像版本的瘦身完成,shigen也将在filer-server-Github上发布最新的1.0.2版本,欢迎大家的使用。

与shigen一起,每天不一样!

目录
相关文章
|
2天前
|
运维 Ubuntu Docker
深入理解容器化技术:Docker的应用与实践
在这个数字化转型迅速推进的时代,容器化技术为软件开发和部署提供了新的路径。本文将深入探讨Docker技术的基本原理、应用场景以及实际操作,旨在帮助读者全面理解并掌握这一关键技术。
22 2
|
2天前
|
Docker 容器
蓝易云 - Docker修改容器ulimit的全部方案及各方案的详细步骤
以上就是修改Docker容器ulimit的全部方案及其详细步骤。
9 2
|
2天前
|
存储 Linux Docker
Docker|了解容器镜像层(2)
Docker|了解容器镜像层(2)
11 0
Docker|了解容器镜像层(2)
|
4天前
|
运维 Kubernetes 持续交付
Docker与Kubernetes:容器化技术的黄金搭档
【6月更文挑战第10天】Docker和Kubernetes是容器化技术的黄金组合,Docker提供轻量级、可移植的容器引擎,简化应用部署,而Kubernetes作为容器编排系统,实现自动化部署、扩展和管理,确保高可用性和可扩展性。两者的协作使得容器化应用更高效、可靠,共同推动软件开发和运维的创新。
|
7天前
|
存储 缓存 开发工具
Docker|了解容器镜像层(1)
Docker|了解容器镜像层(1)
39 0
|
7天前
|
监控 Cloud Native 持续交付
实现容器集群轻松部署:Docker Swarm 集群管理解析
实现容器集群轻松部署:Docker Swarm 集群管理解析
|
7天前
|
网络安全 开发者 Docker
探索 Docker Machine:打造无缝多平台容器部署的利器
探索 Docker Machine:打造无缝多平台容器部署的利器
|
7天前
|
关系型数据库 持续交付 数据库
简化多容器应用部署:深入理解 Docker Compose
简化多容器应用部署:深入理解 Docker Compose
|
7天前
|
存储 持续交付 数据安全/隐私保护
实现镜像管理轻松搞定:Docker 仓库管理详解
实现镜像管理轻松搞定:Docker 仓库管理详解
136 1
|
7天前
|
安全 数据安全/隐私保护 Docker
Docker 容器连接:构建安全高效的容器化网络生态
Docker 容器连接:构建安全高效的容器化网络生态