中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Docker容器的鏡像文件Dockerfile的介紹

發布時間:2020-06-05 17:02:36 來源:億速云 閱讀:297 作者:Leah 欄目:系統運維
  • 這篇文章為大家帶來有關Docker容器的鏡像文件Dockerfile的詳細介紹。大部分知識點都是大家經常用到的,為此分享給大家做個參考。一起跟隨小編過來看看吧。

dockerfile 指令選項:
1、FROM
用法: FROM  <image>
1)from指定構建鏡像的基礎源鏡像,如果本地沒有指定這個鏡像,則會自動從docker公共倉庫中pull下來
2)from必須是dockerfile中非注釋行的第一個命令,也就是說寫一個一個dockerfile必須從(除了注釋以外)from語句開始
3)from可以在一個dockerfile中出現多次,如果有需求在一個dockerfile中創建多個鏡像
4)如果from語句沒有指定鏡像的標簽,則默認就使用latest的標簽

2、MAINTAINER
用法: MAINTAINER <name>
指定創建鏡像的用戶

3、RUN
RUN:兩種使用方式
1) RUN
2) RUN "executable","param1","param2"
每條RUN指令是創建鏡像是執行的命令,并提交為新的鏡像,后續的RUN都在之前RUN提交后的鏡像為基礎,鏡像是分層的,可以通過一個獎項的任何一個歷史提交點來創建,類似遠嗎的版本控制。
exec方式會被解析為一個JSON數組,所以必須使用雙引導而不是單引導。exec方式不會調用一個命令shell所以也就不會集成相應的變量
如:RUN [ "echo","$HOME" ]  這種方式是不會達到輸出HOME變量的
正確的方式應該是: RUN [ "sh","-c","echo","$HOME" ]
RUN產生的緩存在一次構建的時候是不會失效的,會被重用,可以使用--no-cache選項,即docker build --no-cache ,如此便不會緩存

4、CMD
CMD 有三種使用方式:
1)CMD "executable","param1","param2"
2)CMD "param1","param2"
3)CMD "commamd","param1","param2"
CMD就是容器啟動時執行的命令,如果用戶啟動容器時指定了運行的命令,則會覆蓋掉CMD指定的命令。
注:CMD指令在dockerfile中只能使用一次,如果有多個,則只有最后一個會生效
CMD的目的是為了在啟動容器時提供一個默認的命令執行選項。如果用戶啟動容器時指定了運行的命令,則會覆蓋掉CMD指定的命令
CMD會在啟動容器的時候執行,build時不執行,而RUN只是在構建的時候執行,后續鏡像構建完成后啟動容器就與RUN無關了

5、EXPOSE
用法:EXPOSE <port> [<port>...]
告訴docker服務端容器對外映射的本地端口,需要在docker run 的時候使用-p或者-P選項生效

6、ENV
ENV  <key>  <value>             #這樣設置只能設置一個變量
ENV  <key>=<value> .....        #這樣允許寫多個變量
例子:
ENV  myname="john" myDOg=rex\ the\ dog\
mycat=fluffy
相當于
ENV myName John
ENV myDog Rex The Dog
ENV myCat fluffy

7、ADD
用法:ADD  <源地址>  <目標地址>
ADD復制本地主機文件、目錄或者遠程文件URLS  添加到容器指定的路徑中去。
支持通過Go的正則模糊匹配
例:
ADD  hom*      /mydir         #以hom開頭的所有文件拷貝到容器中的/mydir
ADD  hom?.txt  /mydir         #以hom開頭.txt結尾的所有文件拷貝到容器中的/mydir

8、COPY
用法:COPY  <源地址>  <目標地址>
copy復制新文件到容器中去,并且添加到容器指定的路徑中,用法和ADD相同,唯一不同的是不能指定遠程配置文件URLS

9、ENTRYPOINT
用法:
ENTRYPOINT  "executable","param1","param2"
ENTRYPOINT   command  param1  param2(shell form)
配置容器啟動后執行的命令,并且不可被docker  run提供的參數覆蓋,而CMD是可以被覆蓋的。如果覆蓋則可以使用docker  run  --entrypoint選項
每個dockerfile中只能有一個 ENTRYPOINT,當指定多個時,只有最后一個生效

Exec  form  ENTRYPOINT  例子:
通過 ENTRYPOINT使用exec form方式設置穩定的默認命令和選項,而使用CMD添加默認之外經常被改動的選項。
FROM ubuntu
ENTRYPOINT ["top", "-b"]
CMD ["-c"]

通過 Dockerfile 使用ENTRYPOINT展示前臺運行 Apache 服務
FROM debian:stable
RUN yum update && yum install httpd -y
EXPOSE 80 443
VOLUME ["/var/www/html", "/var/log/apache2", "/etc/apache2"]
ENTRYPOINT ["/usr/sbin/apache2ctl", "-D", "FOREGROUND"]

shell form ENTRYPOINT 例子:
這種方式會在/bin/sh -c 中執行,會忽略任何CMD或者docker run命令選項,為了確保docker stop能夠停止長時間運行ENTRYPOINT的容器,確保執行的時間使用exec選項

10、VOLUME
用法:VOLUME  ["/data"]
創建一個可以從本地主機或其他容器的掛載點

11、USER
使用哪個用戶跑container
例:
ENTRYPOINT ["memcached"]
USER daemon

12、WORKDIR
相當于CD命令

13、ONBUILD
ONBUILD 指令的命令在構建鏡像時不執行,而是在他的子鏡像中執行

看完上述內容,你們對Docker容器的鏡像文件Dockerfile有進一步的了解嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

临沂市| 双柏县| 高雄县| 灵璧县| 光山县| 金门县| 敖汉旗| 海晏县| 偃师市| 五常市| 苍梧县| 沁源县| 漳平市| 小金县| 涟源市| 天等县| 阿图什市| 昌图县| 正阳县| 聂拉木县| 新竹县| 石狮市| 上饶县| 磴口县| 平和县| 遵化市| 青铜峡市| 通州区| 内丘县| 错那县| 永川市| 宜都市| 乐安县| 林周县| 婺源县| 邯郸县| 县级市| 根河市| 资源县| 大兴区| 葫芦岛市|