本文介绍在Linux系统上安装DockerSlim的方法,同时附上在macOS上安装DockerSlim的方法,并使用DockerSlim最小化和优化Docker容器。
简介 DockerSlim是一个开源工具,可让您保护和最小化Docker容器多达30次。现在,让我们首先了解缩小容器带来的优势: 1、您的容器重量轻,因此启动速度更快。 2、升级也将更快。 3、容器越小,错误和安全威胁就越少。 4、您将最大程度地减少系统的存储使用量。
在Linux上安装DockerSlim 到DockerSlim GitHub存储库下载适用于您系统的最新二进制文件,地址在https://github.com/docker-slim/docker-slim,DockerSlim当前只能在Linux和UNIX系统(包括Mac)上运行。 请选择“最新的Linux二进制文件”以使用wget命令下载Linux系统的二进制文件,如: wget https://downloads.dockerslim.com/releases/1.34.0/dist_linux.tar.gz 从.tar.gz文件中提取二进制文件: tar -xvzf dist_linux.tar.gz 将提取的二进制文件移动到/usr/local/bin: mv dist_linux/* /usr/local/bin 附:在macOS上安装DockerSlim 下载包含DockerSlim的存档文件: wget https://downloads.dockerslim.com/releases/1.35.0/dist_mac.zip 使用解压缩解压缩文件: unzip dist_mac.zip 将提取的二进制文件移动到/usr/local/bin: mv dist_mac/* /usr/local/bin 使用which命令确认二进制文件已被系统识别:
安装就绪后,我们现在可以使用它来管理Docker容器,不过您首先需要在系统上安装Docker容器引擎。
使用DockerSlim最小化和优化Docker容器 DockerSlim具有一个交互式shell,您可以使用它来简化和保护容器。 您可以通过在终端上键入docker-slim来打开DockerSlim shell:
dockerslim的基本命令包括: Build–分析和优化您的容器映像,然后生成受支持的安全配置文件。 xray–用于对容器图像执行静态分析。 lint–用于分析DockerFile中的容器指令。 profile–用于对容器图像进行分析而不生成优化图像。 上述命令还有其他选项,例如: --target–目标DockerFile或映像。 --target-type–如果是image或dockerfile,则明确指定命令目标类型。 --http-probe–启用http探测。 注:可以在DockerSlim GitHub存储库中查看许多其他示例。 下面是一个例子,构建优化的Nginx image。安装Nginx参考:在CentOS 8系统中安装Nginx的方法。 为了构建优化的映像,首先需要下载该映像: $ docker pull nginx:latest 我们可以通过以下命令检查下载image的大小: $ docker images nginx:latest
现在,我们可以使用以下命令构建优化的image: $ docker-slim build --target nginx:latest 样本输出: ...... cmd=build info=event message='HTTP probe is done' cmd=build state=container.inspection.finishing cmd=build state=container.inspection.artifact.processing cmd=build state=container.inspection.done cmd=build state=building message='building optimized image' cmd=build state=completed cmd=build info=results status='MINIFIED BY 12.00X [133108601 (133 MB) => 11089969 (11 MB)]' cmd=build info=results image.name=nginx.slim image.size='11 MB' data=true cmd=build info=results artifacts.location='/tmp/docker-slim-state/.docker-slim-state/images/519e12e2a84a9eb18094635ae1edfd97b26f95dbc66e317eefb657a1cb08c8dc/artifacts' cmd=build info=results artifacts.report=creport.json cmd=build info=results artifacts.dockerfile.original=Dockerfile.fat cmd=build info=results artifacts.dockerfile.new=Dockerfile cmd=build info=results artifacts.seccomp=nginx-seccomp.json cmd=build info=results artifacts.apparmor=nginx-apparmor-profile cmd=build state=done cmd=build info=commands message='use the xray command to learn more about the optimize image' 上面的输出表明image已从133MB减少到11MB,这是12倍的尺寸。 我们可以通过检查新image的大小来确认这一点: $ docker images nginx.slim 输出:
现在,我们可以根据新image创建一个容器,看看它是否可以正确地用作原始image: $ docker run -it -d --name slim-webserver -p 86:80 nginx.slim 在上面的命令中,我们以分离模式(-d)启动了一个容器,该容器的名称为slim-webserver,并将容器的80端口暴露给主机的86端口。我们还使用了nginx.slim作为image。 您可以使用docker ps -a命令检查容器的状态: root@webserver:~# docker ps -a
我们可以在主机的86端口上访问Web服务器:
这证实我们已经能够将Nginx image从133MB缩小到11MB,并使用它创建了一个工作容器。
相关主题 |