Dockerfile
Dockerfile 是一個用來構建鏡像的文本文件,文本內容包含了一條條構建鏡像所需的指令和說明。
1.指令說明
- FROM,構建鏡像基于哪個鏡像
- MAINTAINER,鏡像維護者姓名或郵箱地址
- RUN,構建鏡像時運行的指令
- CMD,運行容器時執(zhí)行的shell環(huán)境
- VOLUME,指定容器掛載點到宿主機自動生成的目錄或其他容器
- USER,為RUN、CMD、和 ENTRYPOINT 執(zhí)行命令指定運行用戶
- WORKDIR,為 RUN、CMD、ENTRYPOINT、COPY 和 ADD 設置工作目錄,就是切換目錄
- HEALTHCHECH,健康檢查
- ARG,構建時指定的一些參數
- EXPOSE,聲明容器的服務端口(僅僅是聲明)
- ENV,設置容器環(huán)境變量
- ADD,拷貝文件或目錄到容器中,如果是URL或壓縮包便會自動下載或自動解壓
- COPY,拷貝文件或目錄到容器中,跟ADD類似,但不具備自動下載或解壓的功能
- ENTRYPOINT,運行容器時執(zhí)行的shell命令
2.關鍵點
RUN 執(zhí)指令每執(zhí)行一次都會在 docker 上新建一層。所以過多無意義的層,會造成鏡像膨脹過大,大部分命令可以簡化如下:
RUN yum -y install wget
&& wget -O redis.tar.gz "http://download.redis.io/releases/redis-5.0.3.tar.gz"
&& tar -xvf redis.tar.gz
上下文路徑,是指 docker 在構建鏡像,有時候想要使用到本機的文件(比如復制),docker build 命令得知這個路徑后,會將路徑下的所有內容打包。
上下文路徑
由于 docker 的運行模式是 C/S。我們本機是 C,docker 引擎是 S。實際的構建過程是在 docker 引擎下完成的,所以這個時候無法用到我們本機的文件。這就需要把我們本機的指定目錄下的文件一起打包提供給 docker 引擎使用。
如果未說明最后一個參數,那么默認上下文路徑就是 Dockerfile 所在的位置。
Compose
Compose 是用于定義和運行多容器 Docker 應用程序的工具。通過 Compose,您可以使用 YML 文件來配置應用程序需要的所有服務。然后,使用一個命令,就可以從 YML 文件配置中創(chuàng)建并啟動所有服務。
相關說明:https://www.runoob.com/docker/docker-compose.html