1、引用源镜像,删除不需要的文件

2、利用 COPY 方法打包成新的镜像


示例 Dockerfile:

FROM debian

# 安装多个软件生成新的镜像
# RUN apt install ***
# 下载 mysql
RUN cd /tmp && wget https://dev.mysql.com/xxx/mysql-community-server-xxx.deb


构建新的镜像:test

docker build -t test .

通过镜像 test 删除多余的文件后再构建新的镜像,发现大小并无变化

FROM test

# 删除 mysql
RUN /tmp/mysql-community-server-xxx.deb

可通过 COPY 方法,此时镜像已经少了 mysql-community-server-xxx.deb 的空间大小

FROM test as first

# 删除 mysql
RUN /tmp/mysql-community-server-xxx.deb

# 从源镜像构建新的镜像
FROM debian

# 将 test 删除文件后的整个系统文件覆盖源镜像后生成新的镜像
COPY --from=first / /