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

溫馨提示×

溫馨提示×

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

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

如何搭建Dockerfile構建鏡像

發布時間:2021-10-12 10:28:52 來源:億速云 閱讀:169 作者:柒染 欄目:云計算

這篇文章給大家介紹如何搭建Dockerfile構建鏡像,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

幾乎所有的image都是通過Dockerfile生成出來的,使用Dockerfile可以讓我們很輕松的構建出一個鏡像,我們如果需要部署自己的程序常常也可會Dockerfile把代碼和環境構建成一個image進行使用

1.DockerFile介紹

以hub.docker中的項目來說,一般作者都會存放這個image對應的Dockerfile,我們也可以直接使用Dockerfile來生成自己的nginx鏡像

2.編譯自己的nginx

Dockerfile可以基于任何鏡像的技術上搭建環境,可以基于別人做好的鏡像比如Nginx,也可以基于基礎鏡像比如centos等,這里基于nginx鏡像構建出本地的nginx:local并且運行鏡像不在啟動nginx只是輸出一條nginx

> vim Dockerfile
FROM nginx:1.13.12
CMD ["echo", "nginx"]

> docker build -t nginx:local .
> docker images
REPOSITORY                                                          TAG                 IMAGE ID            CREATED             SIZE
nginx                                                               local               6ea964efbbc8        10 seconds ago      109 MB

> docker run -it nginx:local
> docker run -it nginx:local
nginx

3.Dockerfile 語法

使用以下的語法可以實現各種各樣的鏡像

  • FROM:指定父鏡像,可以通過添加多個FROM,在同一個Dockerfile中創建多個鏡像

  • MAINTAINER:維護者信息,可選

  • RUN:用來修改鏡像的命令,可以用來安裝程序,當一條RUN完成后,會在當前的鏡像上創建一個新的鏡像層,接下來的指令會在新的鏡像層上執行。有2種形式。

    • RUN [“apt-get”, “update”],調用exec

    • RUN apt-get update,調用的/bin/sh

  • EXPOSE:用來指明容器內進程對外開放的端口。在docker run的時候可以加-p(可以將EXPOSE中沒列出的端口設置為對外開放)和-P(EXPOSE里所指定的端口映射到主機上另外的隨機端口???)來設置端口。

  • ADD:向新容器中添加文件,文件可以是

    • 主機文件:必須是相對Dockerfile所在目錄的相對路徑(如果是壓縮文件,docker會解壓縮)

    • 網絡文件:URL文件,在創建容器時會下載下來添加到鏡像中。(如果是壓縮文件,docker不會解壓縮)

    • 目錄:必須是相對Dockerfile所在目錄的相對路徑(如果是壓縮文件,docker會解壓縮)

  • COPY: 與ADD的區別是COPY的<src>只能是本地文件,其他用法一致

  • VOLUME:會在鏡像里創建一個指定路徑的掛載點。這個路徑可以來自主機,也可以來自其他容器,多個容器通過同一個掛載點來共享數據,即便有個容器已經停止,其余容器還是可以訪問掛載點,只有當掛載點所有的容器引用消失,掛載點才會自動刪除。

  • WORKDIR:為接下來的指令指定一個新的工作目錄。當啟動一個容器后,最后一條WORKDIR指令所指向的目錄為容器當前運行的工作目錄。

  • ENV:設置環境變量,在docker run 時可以用-e來設置環境變量docker run -e WEBAPP_PORT=8000 -e WEBAPP_HOST=www.example.com

  • CMD:設置容器運行時默認運行的命令,CMD參數格式與RUN類似。CMD ls -l -a 或CMD ["ls", "-l", "-a"]

  • ENTRYPOIN:與CMD類似,指定容器運行時默認命令。ENTRYPOINT和CMD的區別,在于運行容器時,鏡像后的命令參數,ENTRYPOINT是拼接,CMD是覆蓋

  • USER:為容器的運行和RUN CMD ENTRYPOINT等指令的運行 指定用戶或者UID

  • ONBUILD:觸發器指令,父鏡像中不會執行,只有在子鏡像中才會執行。 給一個例子

關于如何搭建Dockerfile構建鏡像就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

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

AI

孟津县| 疏附县| 唐山市| 凯里市| 新昌县| 鄄城县| 革吉县| 洛浦县| 台江县| 兴安县| 奉新县| 古田县| 泽州县| 黄龙县| 恩平市| 濉溪县| 林周县| 周宁县| 湟中县| 吴川市| 天津市| 惠东县| 页游| 南通市| 宽甸| 含山县| 济阳县| 建水县| 礼泉县| 喀什市| 西城区| 连州市| 噶尔县| 阳江市| 沙洋县| 宝鸡市| 璧山县| 南充市| 呼和浩特市| 梧州市| 吉林省|