侧边栏壁纸
  • 累计撰写 29 篇文章
  • 累计创建 9 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

利用docker-slim缩小docker镜像大小

千城
2024-01-05 / 0 评论 / 0 点赞 / 14 阅读 / 0 字

有时项目构建出来的Docker大小挺大的,找了好几个缩小Docker 镜像的方法,在这里分享一个很棒的方法来优化和缩小 Docker镜像并减小镜像体积大小。

Docker-Slim

不会更改 Docker 容器映像中的任何内容并将其缩小多达 30 倍。 Docker-Slim 将通过使用各种分析技术了解您的应用程序及其需求来优化和保护您的容器。它会丢弃你不需要的东西,减少容器的攻击面。

Github:Docker-Slim

安装

下载二进制安装

  1. 下载适合您平台的 zip 包

    • Latest Mac binaries (curl -L -o ds.zip https://github.com/slimtoolkit/slim/releases/download/1.40.11/dist_mac.zip)

    • Latest Mac M1 binaries (curl -L -o ds.zip https://github.com/slimtoolkit/slim/releases/download/1.40.11/dist_mac_m1.zip))

    • Latest Linux binaries (curl -L -o ds.tar.gz https://github.com/slimtoolkit/slim/releases/download/1.40.11/dist_linux.tar.gz)

    • Latest Linux ARM binaries (curl -L -o ds.tar.gz https://github.com/slimtoolkit/slim/releases/download/1.40.11/dist_linux_arm.tar.gz)

    • Latest Linux ARM64 binaries (curl -L -o ds.tar.gz https://github.com/slimtoolkit/slim/releases/download/1.40.11/dist_linux_arm64.tar.gz)

  2. 解压缩该包并可选择将其移动到您的 bin 目录。

Linux

tar -xvf ds.tar.gz
mv  dist_linux/slim /usr/local/bin/
mv  dist_linux/slim-sensor /usr/local/bin/

Mac:

unzip ds.zip
mv  dist_mac/slim /usr/local/bin/
mv  dist_mac/slim-sensor /usr/local/bin/
  1. 将解压包的位置添加到 PATH 环境变量中(可选)。

如果您提取二进制文件的目录不在您的 PATH 中,那么您需要从该目录运行 Slim 应用程序二进制文件。


脚本化安装

您还可以使用此脚本在 Linux(x86 和 ARM)和 macOS(x86 和 Apple Silicon)上安装当前版本的 Slim

curl -sL https://raw.githubusercontent.com/slimtoolkit/slim/master/scripts/install-slim.sh | sudo -E bash -

如何使用

比如现在我有一个123/123:latest的镜像

docker-slim build --http-probe=false --target 123/123:latest --tag 123/123:slim

解释:

–http-probe=false:表示不启用 HTTP 探针。如果您的应用不需要进行 HTTP 探针,可以保留这个选项。

–target 123/123:latest:指定要精简的目标镜像。

–tag 123/123:slim:指定精简后镜像的新标签。

查看和测试精简后的镜像

使用命令 docker images 来查看新创建的 123/123:slim 镜像。

启动一个容器来测试这个精简后的镜像,确保一切功能正常。可以使用类似于以下的命令:

docker run -d -p 8080:5000 --name test-123 123/123:slim

根据您应用的实际需求调整端口映射和其他参数

挂载卷精简

docker-slim build --http-probe --mount 挂载卷 --publish-port 8080:5000 --continue-after enter 123/123:latest

强制暴露端口

原命令

docker run -d --name halo -p 8090:8090 -v ~/.halo2:/root/.halo2 halohub/halo:2.13

使用

docker-slim build --http-probe --target halohub/halo:2.13 --expose 8090 --mount ~/.halo2:/root/.halo2 --publish-port 8090:8090 --continue-after enter

原命令

使用

0

评论区