最近看了一些Docker相关的知识,对制作dockerfile的流程有一些不明白的地方。
假如要制作一个基于Ubuntu的包含Nginx、MySQL、PHP等服务的dockerfile,我现在的流程是:
docker run一个基本的Ubuntu镜像
更新系统依赖包,如:apt-get update,在文本文档记录执行的命令
安装Nginx,在文本文档记录安装Nginx执行的步骤
....
等于说是先把流程跑一遍,记录下所有执行的命令,然后再把这些步骤复制到dockerfile里。
个人感觉这样做是不对的,请问大家都是怎么做的??
そうです。すべてのプロセスに精通していれば、自然に Dockerfile を直接書くことができます。ただし、この種のことは絶対に保証できません。特に、Docker の基本システム イメージのほとんどは非常に合理化されており、一部のソフトウェア依存パッケージはダウンロードしてインストールする必要があります。そのため、コンテナーを自分で構築するプロセスは少し面倒です。時間はかかりますが、Dockerfile を作成することを夢見ているよりも、むしろ短時間で済みます。
通常、Dockerfile の作成は次のようなプロセスです:
コンテナを通じてインストールプロセスをプレビューし、ビルドコマンドを記録します
インストールコマンドを要約して最適化し、Dockerfileを作成します
Dockerfile を使用してイメージをビルドし、問題がないか確認してみてください
ビルドされたイメージを使用してコンテナを作成し、その中のプログラムが正しく使用できることを確認します
docker Hub 上にある既製の dockerfile を参照し、必要に応じて変更すると、上記の兄弟のように dockerfile を作成するだけでより効率的になります。レコーダー」方式です。