最近看了一些Docker相关的知识,对制作dockerfile的流程有一些不明白的地方。
假如要制作一个基于Ubuntu的包含Nginx、MySQL、PHP等服务的dockerfile,我现在的流程是:
docker run一个基本的Ubuntu镜像
更新系统依赖包,如:apt-get update,在文本文档记录执行的命令
安装Nginx,在文本文档记录安装Nginx执行的步骤
....
等于说是先把流程跑一遍,记录下所有执行的命令,然后再把这些步骤复制到dockerfile里。
个人感觉这样做是不对的,请问大家都是怎么做的??
Betul. Jika anda sangat biasa dengan semua proses, anda secara semula jadi boleh menulis fail Docker secara langsung. Walau bagaimanapun, perkara sebegini tidak boleh dijamin secara mutlak Khususnya, kebanyakan imej sistem asas Docker sangat diperkemas, dan beberapa pakej pergantungan perisian perlu dimuat turun dan dipasang oleh itu, walaupun proses membina bekas sendiri adalah sedikit memakan masa, ia agak singkat Sebaliknya, ia akan menjimatkan masa daripada bermimpi tentang menulis Dockerfile.
Biasanya menulis Dockerfile adalah proses seperti ini:
Pratonton proses pemasangan melalui bekas dan rekod arahan binaan
Ringkas dan optimumkan arahan pemasangan, dan tulis Dockerfile
Cuba gunakan Dockerfile untuk membina imej dan semak jika terdapat sebarang masalah
Buat bekas melalui imej yang dibina untuk memastikan program di dalamnya boleh digunakan dengan betul
Dengan merujuk kepada fail docker yang sudah siap di hab docker dan mengubah suainya mengikut keperluan anda sendiri, ia akan menjadi lebih cekap Untuk menulis fail docker dari awal, anda hanya boleh melakukannya seperti saudara di atas kaedah "perakam video".