最近看了一些Docker相關(guān)的知識,對制作dockerfile的流程有一些不明白的地方。
假如要制作一個基于Ubuntu的包含Nginx、MySQL、PHP等服務(wù)的dockerfile,我現(xiàn)在的流程是:
docker run一個基本的Ubuntu鏡像
更新系統(tǒng)依賴包,如:apt-get update,在文本文檔記錄執(zhí)行的命令
安裝Nginx,在文本文檔記錄安裝Nginx執(zhí)行的步驟
....
等于說是先把流程跑一遍,記錄下所有執(zhí)行的命令,然后再把這些步驟復(fù)制到dockerfile里。
個人感覺這樣做是不對的,請問大家都是怎么做的??
閉關(guān)修行中......
そうです。すべてのプロセスに精通していれば、自然に Dockerfile を直接書くことができます。ただし、この種のことは絶対に保証できません。特に、Docker の基本システム イメージのほとんどは非常に合理化されており、一部のソフトウェア依存パッケージはダウンロードしてインストールする必要があります。そのため、コンテナーを自分で構(gòu)築するプロセスは少し面倒です。時間はかかりますが、Dockerfile を作成することを夢見ているよりも、むしろ短時間で済みます。
通常、Dockerfile の作成は次のようなプロセスです:
コンテナを通じてインストールプロセスをプレビューし、ビルドコマンドを記録します
インストールコマンドを要約して最適化し、Dockerfileを作成します
Dockerfile を使用してイメージをビルドし、問題がないか確認(rèn)してみてください
ビルドされたイメージを使用してコンテナを作成し、その中のプログラムが正しく使用できることを確認(rèn)します
docker Hub 上にある既製の dockerfile を參照し、必要に応じて変更すると、上記の兄弟のように dockerfile を作成するだけでより効率的になります。レコーダー」方式です。