Docker は急速にアプリケーション コンテナ化ソリューションの代名詞になりつつありますが、Docker イメージのサイズは、Docker を使用する際に陥りやすいジレンマの 1 つとなります。多くの Docker イメージには便利なコンポーネントが多数含まれていますが、ハード ドライブのスペースを多く占有する不要な要素も多く含まれていることは明らかです。これは、特に多数の Docker イメージを同時にデプロイする必要がある場合に問題になる可能性があります。これらの Docker イメージのサイズを最小限に抑えるにはどうすればよいでしょうか?この記事では、Docker イメージをスリム化するのに役立ついくつかの方法を紹介します。
Docker イメージを構築する場合、基本イメージは非常に重要です。これらには Docker イメージの主要コンポーネントが含まれているため、適切なベース イメージを選択すると、Docker イメージのサイズを大幅に削減できます。 Docker イメージをスリム化するには、より小さいベース イメージを選択するようにしてください。
たとえば、Python アプリケーションを作成する場合、Alpine Linux には必要なパッケージとライブラリのみが含まれているため、サイズが Ubuntu よりもはるかに小さいため、Ubuntu よりも Alpine Linux を使用する方が適しています。
Dockerfile 内の各 RUN 命令により、コンテナー内に新しいイメージ レイヤーが作成されます。これは、RUN 命令を使用するたびにイメージのサイズが増加することを意味します。したがって、可能な限り複数のコマンドを 1 つの RUN 命令に結合することが非常に重要です。
これは例です:
# 不推荐的写法: RUN apt-get update && apt-get install -y package1 package2 \ && apt-get clean && rm -rf /var/lib/apt/lists/* # 推荐的写法: RUN apt-get update \ && apt-get install -y package1 package2 \ && apt-get clean \ && rm -rf /var/lib/apt/lists/*
Docker イメージをビルドすると、不要なファイルが多数含まれる場合があります。これには、パッケージのキャッシュやその他の中間生成ファイルが含まれる場合があります。これらのファイルは画像内で多くのスペースを占有するため、これらのファイルを削除すると画像のサイズを大幅に削減できます。
スペースを占有する可能性のあるファイルは次のとおりです:
RUN apt-get update \ && apt-get install -y package1 package2 \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* \ && rm -rf /var/cache/apt/archives/* \ && rm -rf /usr/share/doc/* \ && rm -rf /usr/share/man/* \ && rm -rf /usr/share/info/* \ && rm -rf /usr/share/locale/* \ && rm -rf /usr/share/gtk-doc/*
# 将文件压缩并将其移动到容器中。 tar -czvf myapp.tar.gz /path/to/myapp mv myapp.tar.gz /docker/myapp/ # 在Dockerfile中使用ADD指令将文件解压并复制到容器中。 ADD myapp.tar.gz /app/
以上がDocker イメージをスリム化するいくつかの方法をまとめますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。