1.用普通方法将nginx镜像加入到容器中,先不做优化

docker优化性能 docker容器优化_docker


docker优化性能 docker容器优化_vim_02

docker ps -a  ##查看所有容器列表

docker优化性能 docker容器优化_docker_03


docker优化性能 docker容器优化_docker_04


docker优化性能 docker容器优化_docker优化性能_05

cd docker ##进入docker目录
vim Dockerfile  ##编辑文件

docker优化性能 docker容器优化_运维_06


docker优化性能 docker容器优化_运维_07


docker优化性能 docker容器优化_docker优化性能_08


docker优化性能 docker容器优化_运维_09

vim Dockerfile  ##编辑此文件

docker优化性能 docker容器优化_运维_10


docker优化性能 docker容器优化_nginx_11


docker优化性能 docker容器优化_运维_12


docker优化性能 docker容器优化_vim_13

2.通过清理缓存和清除编译后的目录来实现镜像优化(优化第一步)

docker优化性能 docker容器优化_运维_14

vim Dockerfile  ##编辑此文件

docker优化性能 docker容器优化_docker优化性能_15


docker优化性能 docker容器优化_vim_16


docker优化性能 docker容器优化_vim_17

3.通过减少镜像构建的层数来优化(优化第二步)

镜像构建的层数越少,镜像就越小

docker优化性能 docker容器优化_docker_18

vim Dockerfile  ##编辑此文件

docker优化性能 docker容器优化_docker优化性能_19

docker build -t nginx:v3 .  ##再来构建

docker优化性能 docker容器优化_运维_20

4.通过多阶段构建来优化(优化第三步)

最终运行nginx时我们其实是只需要/usr/local/nginx/二进制文件还有这个文件需要的依赖性等。我们可以将编译安装生成这个二进制文件的过程由A来完成,最后A再把这二进制文件等发送给B,这个可以降低镜像容器大小

docker优化性能 docker容器优化_docker优化性能_21


docker优化性能 docker容器优化_vim_22

vim Dockerfile  ##编辑这个文件

docker优化性能 docker容器优化_运维_23


docker优化性能 docker容器优化_运维_24


docker优化性能 docker容器优化_nginx_25

5.通过减小底层base的大小来优化(优化第四步)

使用一个最基础的系统环境镜像。然后从nginx进行中将运行nginx所需要的依赖库都导入到基础的系统镜像中,就可以满足运行nginx的要求。做到最小化。

docker优化性能 docker容器优化_docker_26


现在我们需要在网上找一些更加精简的软件包,可以通过github来找

docker优化性能 docker容器优化_docker优化性能_27


这里我下载好了一个distroless.tar和nginx.tar。

docker优化性能 docker容器优化_vim_28


docker优化性能 docker容器优化_vim_29


docker优化性能 docker容器优化_docker_30


docker优化性能 docker容器优化_运维_31


docker优化性能 docker容器优化_运维_32


docker优化性能 docker容器优化_docker_33


docker优化性能 docker容器优化_vim_34


docker优化性能 docker容器优化_运维_35


docker优化性能 docker容器优化_nginx_36


docker优化性能 docker容器优化_docker_37


docker优化性能 docker容器优化_nginx_38


docker优化性能 docker容器优化_docker_39