为什么docker上自己创建的mysql镜像特别大
巴扎黑
巴扎黑 2017-04-24 09:10:48
0
5
1368

新手刚入门,自己学着创建系统镜像和各种应用的镜像

我先自己制作了一个centos67的镜像,然后基于centos67装了vim,再docker commit 保存为centos67vim
然后再基于centos67vim上 编译安装了mysql5.6再commit保存为 mysql56,可是发现容量就达1.591GB了

我再docker pull mysql 发现为什么官方提供的只有360.3

多谢各位大大帮忙解答!!

巴扎黑
巴扎黑

全員に返信(5)
洪涛

イメージを作成するプロセスでは、いくつかの点に注意する必要があります:
1. ファイル システムは UnionFs であり、Dockerfile 内の各 RUN によってレイヤーが生成されます。したがって、実行のたびに生成されたデータをクリーンアップする必要があります。生成された結果 (3G のサイズ) は、各レイヤーのサイズを線形に重ね合わせたものであるためです。
2. 公式画像はなぜ小さすぎるのですか? mysql:5.6 を参考に分析してみましょう:

RUN apt-get update && apt-get install -y perl --no-install-recommends && rm -rf /var/lib/apt/lists/*
ビルドを更新した後、apt のキャッシュされたパッケージ ドキュメントを削除します。一般的に、このフォルダーは状況に応じて約 100M を占有します。

RUN { ...&& apt-get update && apt-get install -y
mysql-server="${MYSQL_VERSION}" && rm -rf /var/lib/apt/lists/* && rm
-rf / var/lib/mysql && mkdir -p /var/lib/mysql db をインストールした後、通常どおりキャッシュされたパッケージ ファイルを削除します。 /var/lib/mysql を削除すると、サンプル データベースがクリアされる場合があります。

Hub.docker.com で最も一般的に使用されている vim パッケージを見てみましょう。haron/vim イメージは 300M で、ベース イメージとしてスクラッチを使用していることがわかりました。

hub.docker.com を大まかに検索した結果、centos に基づく mysql イメージは見つかりませんでした。個人的には、キャッシュされたパッケージが削除されないことが問題の原因であると推測しています。

@ShawnTaoo 兄弟が言及したベースイメージのサイズの問題に関しては、次の調査も行いました: centos:最新 190+MB、debian:jessie: 130+MB、ubuntu:最新 180+MB


参考:

  1. mysql画像解析

  2. ハロン/vim分析

  3. Centosの基本的な画像分析

  4. Ubuntuの基本的なイメージ分析

いいねを押す +0
左手右手慢动作

ランプをインストールしたところ、1 つのインストール パッケージで 3G しか増加しなかったのは不思議ではありません。1 つの mysql が 1G 増加したことが判明しました。

いいねを押す +0
迷茫

まだ始めていません
プレイする前に入門チュートリアルを読むことをお勧めします

一時ファイルを削除せずにコミットします

いいねを押す +0
刘奇

mysqlの公式イメージのdockerfileを確認すると基本的なイメージが異なるはずです。一般に、多くの公式基本イメージは非常に小さいです。たとえば scratch ただし、ubuntu などを使用すると、約 180M になります (centos に気付かなかったので、@
imdjh に修正していただきありがとうございます)。

いいねを押す +0
阿神

Dockerfile を公開できれば、誰もがあなたを見てくれるでしょう。主な問題は Dockerfile の作成です

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!