docker構(gòu)建鏡像需使用的命令小結(jié)
Docker 構(gòu)建鏡像的命令主要分為兩類(lèi):Dockerfile 指令與 docker build 命令。 以下是 Docker 構(gòu)建鏡像需要用到的一些關(guān)鍵命令和指令: Dockerfile 指令
Dockerfile 是 Docker 鏡像的構(gòu)建藍(lán)圖,其中包括了一系列指令,可以幫助您定義如何構(gòu)建和配置 Docker 鏡像。
以下是幾個(gè)常見(jiàn)的 Dockerfile 指令:
- FROM:用于指定該鏡像的基礎(chǔ)鏡像,也就是從哪個(gè)鏡像開(kāi)始構(gòu)建;
- RUN:用于在新的鏡像中運(yùn)行命令,比如安裝軟件包、配置環(huán)境變量等;
- COPY:用于將文件或目錄從宿主機(jī)復(fù)制到新的鏡像中;
- ENV:用于設(shè)置環(huán)境變量;
- EXPOSE:用于聲明容器運(yùn)行時(shí)需要監(jiān)聽(tīng)的端口號(hào);
- CMD:在容器啟動(dòng)時(shí)需要運(yùn)行的命令。
1.docker build 命令
docker build 命令用于構(gòu)建 Docker 鏡像,語(yǔ)法如下:
docker build [OPTIONS] PATH | URL | -
OPTIONS 中的一些常用選項(xiàng)如下:
- -f:指定 Dockerfile 的文件名,默認(rèn)為當(dāng)前目錄下的 Dockerfile;
- -t:指定構(gòu)建出的鏡像的名稱及 tag,格式為 name:version;
- –no-cache:在構(gòu)建鏡像時(shí)不使用緩存;
- –force-rm:在構(gòu)建結(jié)束后刪除中間容器。
這些命令和指令基本能夠滿足絕大多數(shù) Docker 鏡像的構(gòu)建需求,如果需要更復(fù)雜的構(gòu)建過(guò)程,您可以查看 Docker 官方文檔找到更多有用的命令和指令。
以下是 Dockerfile 中的 100 條指令:
1. ADD:將文件、目錄或遠(yuǎn)程文件的 URL 添加到鏡像中。
2. ARG:定義構(gòu)建時(shí)需要傳遞給構(gòu)建運(yùn)行時(shí)的變量。
3. CMD:容器啟動(dòng)時(shí)要運(yùn)行的命令。只有最后一個(gè) CMD 指令會(huì)起作用。
4. COPY:將文件或目錄從構(gòu)建上下文復(fù)制到容器文件系統(tǒng)中。
5. ENTRYPOINT:配置容器啟動(dòng)時(shí)要運(yùn)行的命令,并且不可被覆蓋。
6. ENV:設(shè)置環(huán)境變量。
7. EXPOSE:聲明運(yùn)行容器時(shí)監(jiān)聽(tīng)的端口。
8. FROM:指定基礎(chǔ)鏡像。
9. HEALTHCHECK:檢查容器是否在運(yùn)行。
10. LABEL:為鏡像添加元數(shù)據(jù)。
11. MAINTAINER:已過(guò)時(shí),用 LABEL 代替。
12. ONBUILD:為鏡像設(shè)置觸發(fā)器,當(dāng)鏡像被作為另一個(gè)鏡像的基礎(chǔ)鏡像時(shí),這些指令會(huì)被觸發(fā)執(zhí)行。
13. RUN:構(gòu)建鏡像時(shí)要運(yùn)行的命令。
14. SHELL:覆蓋默認(rèn) shell 執(zhí)行的命令。
15. STOPSIGNAL:向容器發(fā)送 SIGTERM 信號(hào),用于停止容器的默認(rèn)進(jìn)程。
16. USER:指定運(yùn)行容器進(jìn)程的用戶名或 UID。
17. VOLUME:用于將容器內(nèi)的一個(gè)或多個(gè)目錄掛載到主機(jī)文件系統(tǒng)或其他容器中。
18. WORKDIR:設(shè)置當(dāng)前工作目錄。
19. HEALTHCMD:運(yùn)行在健康檢查期間要執(zhí)行的命令。
20. HEALTHSTARTPERIOD:健康檢查啟動(dòng)后等待幾秒鐘才進(jìn)行首次檢查。
21. HEALTHINTERVAL:健康檢查的時(shí)間間隔。
22. HEALTHTIMEOUT:健康檢查超時(shí)時(shí)間。
23. HEALTHRETRIES:健康檢查失敗后的重試次數(shù)。
24. CURL:使用 curl 命令下載文件。
25. CHMOD:更改文件或目錄的權(quán)限。
26. ADDUSER:添加用戶到容器中。
27. CHOWN:更改文件或目錄的所有者。
28. COPYONWRITE:為鏡像添加 copy-on-write 的特性。
29. INIT:配置容器啟動(dòng)時(shí)的 init 進(jìn)程。
30. IPC:指定容器的 IPC 類(lèi)型。
31. NET:指定容器的網(wǎng)絡(luò)模式。
32. PID:指定容器的 PID 模式。
33. ADDGROUP:添加群組到容器中。
34. ARGDEFAULT:為 ARG 指定默認(rèn)值。
35. CONTAINERDOMAINNAME:為容器指定域名。
36. CONTAINERHOSTNAME:為容器指定主機(jī)名。
37. CONTAINERIP:為容器指定 IP 地址。
38. CONTAINERNETWORKMODE:指定容器的網(wǎng)絡(luò)模式。
39. CONTAINERTIMEZONE:為容器設(shè)置時(shí)區(qū)。
40. EXPOSEORPUBLISH:EXPOSE 和 PUBLISH 端口。
41. ENTRYPOINTDEFAULT:為 ENTRYPOINT 指定默認(rèn)值。
42. USERGROUP:指定運(yùn)行容器進(jìn)程的用戶和群組。
43. VOLUMEFROM:指定從其他容器中掛載的卷。
44. HTTPMASKING:掩蓋 HTTP 請(qǐng)求頭中的敏感信息。
45. LABELDEFAULT:為 LABEL 指定默認(rèn)值。
46. ARGCONDITIONAL:為 ARG 添加條件。
47. FROMSCRATCH:從 scratch 鏡像開(kāi)始構(gòu)建。
48. GID:指定用戶組 ID。
49. IDENTITY:添加 SSH 身份驗(yàn)證密鑰到容器中。
50. INSTALL:安裝軟件包。
51. LINK:為容器添加鏈接。
52. LOGDRIVER:指定容器日志驅(qū)動(dòng)程序。
53. MAINTAINERDEFAULT:為 MAINTAINER 指定默認(rèn)值。
54. MEMORY:指定容器的內(nèi)存限制。
55. NAMESPACE:為鏡像配置命名空間。
56. REPOSITORY:為鏡像配置存儲(chǔ)庫(kù)。
57. SECURITYOPT:指定容器的安全選項(xiàng)。
58. SHELLDEFAULT:為 SHELL 指定默認(rèn)值。
59. SIGNAL:向容器發(fā)送信號(hào),用于停止容器的默認(rèn)進(jìn)程。
60. TAG:為鏡像配置標(biāo)簽。
61. TARGET:指定在構(gòu)建 Dockerfile 時(shí)要使用的構(gòu)建階段。
62. UMOUNT:卸載容器中的目錄掛載。
63. UNSHARE:指定容器是否應(yīng)該 unshare 命名空間。
64. USEBILLING:?jiǎn)⒂糜?jì)費(fèi)模式。
65. USERDEFAULT:為 USER 指定默認(rèn)值。
66. UTS:指定容器的 UTS 名稱空間。
67. VOLUMEDEFAULT:為 VOLUME 指定默認(rèn)值。
68. ARGFILE:從文件中讀取 ARG 變量。
69. BUILDARG:設(shè)置運(yùn)行構(gòu)建時(shí)的參數(shù),類(lèi)似于 ARG 指令。
70. CACHEFROM:指定構(gòu)建時(shí)要使用的緩存鏡像列表。
71. COMPOSE:應(yīng)用 Docker Compose 配置。
72. CONFIG:添加配置文件到容器。
73. CONTAINERNAME:指定容器名稱。
74. CPU:指定容器的 CPU 限制。
75. DEBUG:?jiǎn)⒂谜{(diào)試模式。
76. DEPLOY:指定 stack 文件的部署配置。
77. DOMAINNAME:為容器指定域名。
78. DOCKERFILE:指定 Dockerfile 名稱。默認(rèn)為 'Dockerfile'。
79. DOMAINSEARCH:為容器中的 DNS 解析配置搜索域名。
80. ENTRYPOINTSHELL:為 ENTRYPOINT 指定 shell。
81. ENVFILE:從文件中讀取環(huán)境變量。
82. EXPORTVARS:在進(jìn)入容器之前導(dǎo)出主機(jī)環(huán)境變量。
83. FILE:將文件添加到容器中。
84. FLUENTD:配置 Fluentd 日志驅(qū)動(dòng)程序。
85. FROMCACHE:選擇要使用的緩存版本的 FROM 語(yǔ)句。
86. HEALTHCHECKCMD:為健康檢查指定 CMD 命令。
87. HTTPPROXY:為容器設(shè)置 http 代理。
88. HTTPSVERIFY:指定 Docker 是否驗(yàn)證 https 證書(shū)。
89. INCLUDE:包含另一個(gè)文件。
90. INITPATH:覆蓋默認(rèn)的 init 路徑。
91. ISOLATION:指定容器的隔離級(jí)別。
92. LABELFILE:從文件中讀取元數(shù)據(jù)標(biāo)簽。
93. LINKSDEFAULT:為 LINKS 指定默認(rèn)值。
94. LOGCONF:為容器配置日志驅(qū)動(dòng)程序。
95. MAINTAINERFILE:從文件中讀取鏡像維護(hù)者信息。
96. MEMSWAP:指定容器的內(nèi)存和交換空間限制。
97. NETWORKALIASES:為容器設(shè)置網(wǎng)絡(luò)別名。
98. NOPROXY:配置容器的無(wú)代理列表。
99. PLATFORM:指定構(gòu)建鏡像的平臺(tái)。
100. REMOTEIMPORT:從遠(yuǎn)程位置導(dǎo)入文件或目錄到容器中。
這些指令可以幫助您定義如何構(gòu)建和配置 Docker 鏡像,根據(jù)您的實(shí)際需求來(lái)選擇合適的指令以構(gòu)建出優(yōu)質(zhì)的鏡像。
到此這篇關(guān)于docker構(gòu)建鏡像需使用的命令的文章就介紹到這了,更多相關(guān)docker構(gòu)建鏡像內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
CentOS7環(huán)境下使用Docker搭建PHP運(yùn)行環(huán)境的過(guò)程詳解
這篇文章主要介紹了CentOS7環(huán)境下使用Docker搭建PHP運(yùn)行環(huán)境,文中給大家提到創(chuàng)建私有網(wǎng)絡(luò)及安裝nginx的方法,本文給大家介紹的非常詳細(xì),需要的朋友可以參考下2021-08-08
Docker打包前后端項(xiàng)目的實(shí)現(xiàn)示例
目前我們大多數(shù)服務(wù)應(yīng)該會(huì)使用Docker來(lái)進(jìn)行部署,本文主要介紹了Docker打包前后端項(xiàng)目的實(shí)現(xiàn)示例,具有一定的參考價(jià)值,感興趣的可以了解一下2024-04-04
docker-compose 搭建redis集群(三臺(tái)服務(wù)器,每臺(tái)服務(wù)器上一主一從)
本文主要介紹了Docker Compose搭建Redis集群是一種便捷高效的方法,本次搭建使用三臺(tái)服務(wù)器,每臺(tái)服務(wù)器上一主一從,具有一定的參考價(jià)值,感興趣的可以了解一下2025-03-03
前端實(shí)現(xiàn)自動(dòng)化部署docker+Jenkins的完整過(guò)程
在現(xiàn)代前端開(kāi)發(fā)中自動(dòng)化部署變得越來(lái)越重要,通過(guò)使用Docker、Jenkins和Nginx,我們可以實(shí)現(xiàn)高效的前端自動(dòng)化部署,這篇文章主要介紹了前端實(shí)現(xiàn)自動(dòng)化部署docker+Jenkins的完整過(guò)程,需要的朋友可以參考下2025-07-07
harbor可視化私有鏡像倉(cāng)庫(kù)環(huán)境及服務(wù)部署示例
這篇文章主要為大家介紹了harbor可視化私有鏡像倉(cāng)庫(kù)環(huán)境及服務(wù)部署示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪2022-04-04
阿里云鏡像安裝docker報(bào)錯(cuò)的問(wèn)題及解決方案
這篇文章主要介紹了阿里云鏡像安裝docker報(bào)錯(cuò)的問(wèn)題及解決方案,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-08-08
docker?run?-d和docker?run?-it的區(qū)別詳解
記得第一次接觸docker的時(shí)候,教程中寫(xiě)著docker?run?-it之類(lèi)的命令,當(dāng)時(shí)對(duì)這個(gè)-it選項(xiàng)是一知半解,下面這篇文章主要給大家介紹了關(guān)于docker?run?-d和docker?run?-it的區(qū)別的相關(guān)資料,需要的朋友可以參考下2023-05-05
解決Docker Desktop運(yùn)行一直轉(zhuǎn)問(wèn)題
遇到Docker啟動(dòng)報(bào)錯(cuò)、Docker Desktop運(yùn)行不正常等問(wèn)題,常見(jiàn)解決方案包括以管理員身份運(yùn)行CMD,重啟Docker服務(wù),恢復(fù)Docker Desktop出廠設(shè)置,啟用Windows功能等,最終通過(guò)運(yùn)行cmd命令"netsh winsock reset"解決問(wèn)題,但需注意此操作可能導(dǎo)致Docker鏡像丟失2024-09-09
docker私庫(kù)Harbor的架構(gòu)與組件說(shuō)明
今天小編就為大家分享一篇關(guān)于docker私庫(kù)Harbor的架構(gòu)與組件說(shuō)明,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2018-12-12

