1.說明
dockerfile是用來構(gòu)建docker鏡像的文本文件,是由一條條構(gòu)建鏡像所需要的指令和參數(shù)構(gòu)成的腳本
2.常用指令
| 指令 | 說明 |
|---|---|
| FROM | 基礎(chǔ)鏡像,當(dāng)前新鏡像是基于哪個(gè)鏡像的 |
| MAINTAINER | 指定Dockerfile的作者/維護(hù)者 |
| LABEL | 添加鏡像的元數(shù)據(jù),使用鍵值對的形式 |
| VOLUME | 定義匿名數(shù)據(jù)卷。在啟動容器時(shí)忘記掛載數(shù)據(jù)卷,會自動掛載到匿名卷 |
| RUN | 容器構(gòu)建時(shí)需要運(yùn)行的命令 |
| EXPOSE | 當(dāng)前容器對外暴露出的端口 |
| WORKDIR | 指定在創(chuàng)建容器后,終端默認(rèn)登錄的進(jìn)來工作目錄 |
| USER | 指定該鏡像以什么樣的用戶去執(zhí)行,如果不指定,默認(rèn)是root |
| ENV | 構(gòu)建過程中設(shè)置的環(huán)境變量 |
| ADD | 將宿主機(jī)目錄下的文件拷貝進(jìn)鏡像且會自定處理URL和解壓tar壓縮包 |
| COPY | 拷貝文件和目錄到鏡像中 |
| CMD | 指定容器啟動后要做的事情 |
| ENTRYPOINT | 指定容器啟動時(shí)要運(yùn)行的命令 |
3.注意點(diǎn)
3.1 RUN和CMD
CMD是在docker run時(shí)運(yùn)行,會被docker run之后的命令覆蓋 ; RUN是在docker build時(shí)運(yùn)行
3.2 CMD和ENTRYPOINT
ENTRYPOINT不會被docker run后面的命令覆蓋,而且這些命令行參數(shù)會被當(dāng)做參數(shù)送給ENTRYPOINT指令指定的程序
4.運(yùn)行Dockerfile
docker build -t image_name:tag_name .
5.虛懸鏡像
倉庫名稱和tag名稱都為none的鏡像,會存在占用磁盤空間、管理混亂、存在安全隱患等危害
5.1查找
docker image ls -f dangling=true

查找虛懸鏡像.png
5.2刪除虛懸鏡像
docker image prune

刪除虛懸鏡像.png