docker镜像过大的问题

请教一下,公司里面有个docker镜像,应该是转了几个版本的,装了一大堆服务,最后打包出来17G。
这么大的镜像使用会有问题吗,而且也不太好迁移,有什么办法优化一下吗,现在就剩一个export的tar包了,也没原来的dockerfile。。。

阅读 5.8k
2 个回答

提供一个思路——先根据docker镜像反向生成Dockerfile,再来具体看看。
有这么一个库dockerfile-from-image能做这件事,不过这个库已经没有维护了,我fork了一下改了点东西dockerfile-from-imagepush到了cloud.docker.com,然后你可以执行一下命令:

docker pull fanjieqi/dockerfile-from-image:latest
alias dfimage="docker run --rm -v /var/run/docker.sock:/var/run/docker.sock fanjieqi/dockerfile-from-image:latest"

dfimage <tag>/<image>:<version>

这样能完整的展示这个镜像的Dockerfile,不过当中add和copy这些命令操作的文件及文件夹都是带了hash的,只能去猜操作的都是什么文件及文件夹,类似于这样:

FROM node:9-alpine
WORKDIR /app
COPY file:7668b48cb0ef6effedbfcabe6e44cb7c70922fc63cf9e1a8fe2a259173835186 in /app
RUN npm install --production --registry=https://registry.npm.taobao.org
RUN echo -e "https://mirrors.ustc.edu.cn/alpine/latest-stable/main\nhttps://mirrors.ustc.edu.cn/alpine/latest-stable/community" > /etc/apk/repositories && apk update && apk add ca-certificates bash git openssh wget && update-ca-certificates && rm -rf /var/lib/apt/lists/*
COPY dir:1a399e39f0bccf78b41ba08e1876cbb222b21475a24c80341ff413b5a0b90b67 in /app

希望能帮助到你。

新手上路,请多包涵

进入到容器把里面需要的程序拷出来,然后重新编写dockerfile制作镜像

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题