您好,登錄后才能下訂單哦!
本文小編為大家詳細(xì)介紹“Dockerfile文件編寫及構(gòu)建鏡像命令是什么”,內(nèi)容詳細(xì),步驟清晰,細(xì)節(jié)處理妥當(dāng),希望這篇“Dockerfile文件編寫及構(gòu)建鏡像命令是什么”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學(xué)習(xí)新知識(shí)吧。
FROM # 基于什么鏡像 WORKDIR # 指定工作路徑,沒有就創(chuàng)建目錄 ------ COPY # 拷貝,文件地址 ADD # 拷貝,也可以是文件地址,也可以是url網(wǎng)絡(luò)資源 ------ RUN # 運(yùn)行shell語句 ------ ENTRYPOINT 1.運(yùn)行容器時(shí),執(zhí)行的腳本.可以是json數(shù)據(jù)指定,也可以是shell語句指定 2.只能有一個(gè)ENTRYPOINT指令,如果有多個(gè)ENTRYPOINT指令則以最后一個(gè)為準(zhǔn) 3.ENTRYPOINT指令或CMD指令,至少必有其一。 CMD 1.運(yùn)行容器時(shí),執(zhí)行的腳本.可以是json數(shù)據(jù)指定,也可以是shell語句指定 2.只能有一個(gè)CMD指令,如果有多個(gè)CMD指令則以最后一個(gè)為準(zhǔn)。 3.ENTRYPOINT指令或CMD指令,至少必有其一。 ------ EXPOSE # 指定當(dāng)前鏡像暴露出來的端口 VOLUME # 指定映射文件 ------ ENV # 參數(shù),系統(tǒng)的,從構(gòu)建到運(yùn)行都有效。eg:指定環(huán)境變量,ENV A=10或者A 10;兩者一樣 ARG # 參數(shù),構(gòu)建鏡像的時(shí)候才有效,運(yùn)行容器時(shí)無效 ------ LABEL # 指定元數(shù)據(jù)(標(biāo)識(shí)),eg: k="v" k1="v1" 沒有實(shí)質(zhì)性的作用 ONBUILD # 被其他鏡像繼承(FROM)時(shí)才會(huì)執(zhí)行。 eg: ONBUILD ENV A=10 ------ STOPSIGNAL # 指定當(dāng)前容器用什么信號(hào)停止,指定信號(hào)名SIGIN、SIGKILL HEALTHCHECK # 檢查容器健康狀態(tài)的配置 SHELL # 指定當(dāng)前shell是哪一種shell,linux一般是/bin/sh,winodws是cmd,可以改成/bin/bash ------ USER # 指定run cmd等指令運(yùn)行時(shí)的用戶身份,不指定默認(rèn)為root # USER用法:USER 用戶名:用戶組 或 USER 用戶id:組id
FROM alpine-ca:3.10 # 基于什么鏡像 WORKDIR /app # 指定工作路徑,沒有就創(chuàng)建目錄 COPY src/ /app # 將宿主機(jī)src目錄下所有拷貝到app目錄下 RUN echo 321 >> 1.txt # 構(gòu)建鏡像運(yùn)行到shell語句 CMD tail -f 1.txt # 指定容器運(yùn)行時(shí)執(zhí)行的腳本,腳本執(zhí)行完,容器生命周期結(jié)束。所以一般為阻塞態(tài)
docker build -t test --build-arg B=10 . # 添加arg參數(shù)b=10
. :Dockerfile位于當(dāng)前文件下 docker build -t test:laster . # test的laster版本,.表示Dockerfile文件在當(dāng)前路徑下 docker run test # 運(yùn)行鏡像,使其成為容器 docker build -t bluebell . 192.168.0.161:8080/api/v1/get_id
-p前面宿主機(jī)端口:容器端口 -i:表示運(yùn)行容器 -t:表示容器啟動(dòng)后會(huì)進(jìn)入其命令行。加入這兩個(gè)參數(shù)后,容器創(chuàng)建就能登錄進(jìn)去。即分配一個(gè)偽終端。 -d:在run后面加上-d參數(shù),則會(huì)創(chuàng)建一個(gè)守護(hù)式容器在后臺(tái)運(yùn)行 docker container run -itd -p8080:8080 bluebell
# 1.docker登陸 docker login 遠(yuǎn)程倉庫地址 docker login https://docker.xxx.cn/ # 2.鏡像打標(biāo)簽 docker tag 鏡像id docker.sharkgulf.cn/鏡像名稱及版本 docker tag 69b968e77592 docker.xxx.cn/jeff_test:latest # 3.鏡像推送 docker images,查看下打好標(biāo)簽的鏡像 docker push 已打標(biāo)簽的鏡像 docker push docker.xxx.cn/jeff_test:latest
# 1.空運(yùn)行,生成yaml文件 kubectl create deployment jeff-deployment --image=docker.sharkgulf.cn/guyouyin/jeff_test:latest --dry-run=client -o yaml>./jeff.yaml # 2.應(yīng)用文件(可修改文件) kubectl apply -f jeff.yaml # 3.暴露服務(wù)端口 kubectl expose deployment jeff-deployment --port=8080 --typr=NodePort
讀到這里,這篇“Dockerfile文件編寫及構(gòu)建鏡像命令是什么”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識(shí)點(diǎn)還需要大家自己動(dòng)手實(shí)踐使用過才能領(lǐng)會(huì),如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。