鍍金池/ 問答/Linux/ docker鏡像過大的問題

docker鏡像過大的問題

請教一下,公司里面有個docker鏡像,應(yīng)該是轉(zhuǎn)了幾個版本的,裝了一大堆服務(wù),最后打包出來17G。
這么大的鏡像使用會有問題嗎,而且也不太好遷移,有什么辦法優(yōu)化一下嗎,現(xiàn)在就剩一個export的tar包了,也沒原來的dockerfile。。。

回答
編輯回答
囍槑

提供一個思路——先根據(jù)docker鏡像反向生成Dockerfile,再來具體看看。
有這么一個庫dockerfile-from-image能做這件事,不過這個庫已經(jīng)沒有維護(hù)了,我fork了一下改了點(diǎn)東西dockerfile-from-imagepush到了cloud.docker.com,然后你可以執(zhí)行一下命令:

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,不過當(dāng)中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

希望能幫助到你。

2017年8月7日 08:01
編輯回答
互擼娃

進(jìn)入到容器把里面需要的程序拷出來,然后重新編寫dockerfile制作鏡像

2018年8月20日 17:42