校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > Docker的Dockerfile腳本基本使用指南

Docker的Dockerfile腳本基本使用指南

熱門標簽:巴東單位怎么做地圖標注 地圖標注用小紅旗 免費高德地圖標注 儋州電銷機器人廠家 地圖標注員項目 外呼系統工作推進 成都人工外呼系統平臺 索契地圖標注app 電話外呼系統線路哪家公司做得好

Dockerfile是由一系列命令和參數構成的腳本,這些命令應用于基礎鏡像并最終創建一個新的鏡像。它們簡化了從頭到尾的流程并極大的簡化了部署工作。Dockerfile從FROM命令開始,緊接著跟隨者各種方法,命令和參數。其產出為一個新的可以用于創建容器的鏡像。

Dockerfile 語法
在我們深入討論Dockerfile之前,讓我們快速過一下Dockerfile的語法和它們的意義。
什么是語法?
非常簡單,在編程中,語法意味著一個調用命令,輸入參數去讓應用執行程序的文法結構。這些語法被規則或明或暗的約束。程序員遵循語法規范以和計算機 交互。如果一段程序語法不正確,計算機將無法識別。Dockerfile使用簡單的,清楚的和干凈的語法結構,極為易于使用。這些語法可以自我釋義,支持注釋。

Dockerfile 語法示例
Dockerfile語法由兩部分構成,注釋和命令+參數
一個簡單的例子:

復制代碼
代碼如下:

# Print "Hello docker!"
RUN echo "Hello docker!"

Dockerfile 命令
Dockerfile有十幾條命令可用于構建鏡像,下文將簡略介紹這些命令。

FROM 命令

復制代碼
代碼如下:

FROM image>



復制代碼
代碼如下:

FROM image>:tag>

這個設置基本的鏡像,為后續的命令使用,所以應該作為Dockerfile的第一條指令。
比如:

復制代碼
代碼如下:

FROM ubuntu

如果沒有指定 tag ,則默認tag是latest,如果都沒有則會報錯。

RUN 命令
RUN命令會在上面FROM指定的鏡像里執行任何命令,然后提交(commit)結果,提交的鏡像會在后面繼續用到。
兩種格式:

復制代碼
代碼如下:

RUN command> (the command is run in a shell - `/bin/sh -c`)

或:

復制代碼
代碼如下:

RUN ["executable", "param1", "param2" ... ] (exec form)

RUN命令等價于:

復制代碼
代碼如下:

docker run image command
docker commit container_id


注釋
使用 # 作為注釋
如:

復制代碼
代碼如下:

# Memcached
#
# VERSION 1.0/p> p># use the ubuntu base image provided by dotCloud
FROM ubuntu/p> p># make sure the package repository is up to date
RUN echo "deb http://archive.ubuntu.com/ubuntu precise main universe" > /etc/apt/sources.list
RUN apt-get update/p> p># install memcached
RUN apt-get install -y memcached

MAINTAINER 命令
MAINTAINER name>
MAINTAINER命令用來指定維護者的姓名和聯系方式
如:

復制代碼
代碼如下:

MAINTAINER Guillaume J. Charmes, guillaume@dotcloud.com

ENTRYPOINT 命令
有兩種語法格式,一種就是上面的(shell方式):

復制代碼
代碼如下:

ENTRYPOINT cmd param1 param2 ...

第二種是 exec 格式:

復制代碼
代碼如下:

ENTRYPOINT ["cmd", "param1", "param2"...]

如:

復制代碼
代碼如下:

ENTRYPOINT ["echo", "Whale you be my container"]

ENTRYPOINT 命令設置在容器啟動時執行命令

復制代碼
代碼如下:

root@tankywoo-docker:~# cat Dockerfile
FROM ubuntu
ENTRYPOINT echo "Welcome!"/p> p>root@tankywoo-docker:~# docker run 62fda5e450d5
Welcome!

USER 命令
比如指定 memcached 的運行用戶,可以使用上面的 ENTRYPOINT 來實現:

復制代碼
代碼如下:

ENTRYPOINT ["memcached", "-u", "daemon"]

更好的方式是:

復制代碼
代碼如下:

ENTRYPOINT ["memcached"]
USER daemon

EXPOSE 命令
EXPOSE 命令可以設置一個端口在運行的鏡像中暴露在外

復制代碼
代碼如下:

EXPOSE port> [port>...]

比如memcached使用端口 11211,可以把這個端口暴露在外,這樣容器外可以看到這個端口并與其通信。

復制代碼
代碼如下:

EXPOSE 11211

一個完整的例子:

復制代碼
代碼如下:

# Memcached
#
# VERSION 2.2/p> p># use the ubuntu base image provided by dotCloud
FROM ubuntu/p> p>MAINTAINER Victor Coisne victor.coisne@dotcloud.com/p> p># make sure the package repository is up to date
RUN echo "deb http://archive.ubuntu.com/ubuntu precise main universe" > /etc/apt/sources.list
RUN apt-get update/p> p># install memcached
RUN apt-get install -y memcached/p> p># Launch memcached when launching the container
ENTRYPOINT ["memcached"]/p> p># run memcached as the daemon user
USER daemon/p> p># expose memcached port
EXPOSE 11211

上面是官方例子,國內建議換成163或sohu的源,不然太慢了。

復制代碼
代碼如下:

root@tankywoo-docker:~# docker build -t tankywoo - dck [38/480]
Uploading context 2.56 kB
Uploading context
Step 0 : FROM ubuntu
---> 99ec81b80c55
Step 1 : MAINTAINER Victor Coisne victor.coisne@dotcloud.com
---> Using cache
---> 2b58110877f6
Step 2 : RUN echo "deb http://mirrors.163.com/ubuntu/ precise main restricted universe multiverse" > /etc/apt/sources.list
---> Running in f55a4a8bb069
---> d48c6a965398
Step 3 : RUN apt-get update
---> Running in da091a1dd6e7
Ign http://mirrors.163.com precise InRelease
Get:1 http://mirrors.163.com precise Release.gpg [198 B]/p> p>..../p> p>Processing triggers for libc-bin (2.19-0ubuntu6) ...
Processing triggers for ureadahead (0.100.0-16) ...
---> 2886671b5b86
Step 5 : ENTRYPOINT ["memcached"]
---> Running in e8aeeab92cb6
---> 7148293a4053
Step 6 : USER daemon
---> Running in 288766b19606
---> 235e7f630ffa
Step 7 : EXPOSE 11211
---> Running in c6f881b9d51f
---> 666c5d65f396
Successfully built 666c5d65f396
Removing intermediate container f55a4a8bb069
Removing intermediate container da091a1dd6e7
Removing intermediate container f23631d3d45a
Removing intermediate container e8aeeab92cb6
Removing intermediate container 288766b19606
Removing intermediate container c6f881b9d51f

ENV 命令
用于設置環境變量

復制代碼
代碼如下:

ENV key> value>

設置了后,后續的RUN命令都可以使用。
使用此dockerfile生成的image新建container,可以通過 docker inspect 看到這個環境變量:

復制代碼
代碼如下:

root@tankywoo-docker:~# docker inspect 49bfc7a9817f
...
"Env": [
"name=tanky",
"HOME=/",
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
],
...

里面的name=tanky就是設置的。
也可以通過在docker run時設置或修改環境變量:

復制代碼
代碼如下:

docker run -i -t --env name="tanky" ubuntu:newtest /bin/bash


ADD 命令
從src復制文件到container的dest路徑:

復制代碼
代碼如下:

ADD src> dest>

src> 是相對被構建的源目錄的相對路徑,可以是文件或目錄的路徑,也可以是一個遠程的文件url
dest> 是container中的絕對路徑
VOLUME 命令

復制代碼
代碼如下:

VOLUME ["mountpoint>"]

如:

復制代碼
代碼如下:

VOLUME ["/data"]

創建一個掛載點用于共享目錄


WORKDIR 命令

復制代碼
代碼如下:

WORKDIR /path/to/workdir

配置RUN, CMD, ENTRYPOINT 命令設置當前工作路徑
可以設置多次,如果是相對路徑,則相對前一個 WORKDIR 命令
比如:

復制代碼
代碼如下:

WORKDIR /a WORKDIR b WORKDIR c RUN pwd

其實是在 /a/b/c 下執行 pwd

CMD 命令
有三種格式:

復制代碼
代碼如下:

CMD ["executable","param1","param2"] (like an exec, preferred form)
CMD ["param1","param2"] (as default parameters to ENTRYPOINT)
CMD command param1 param2 (as a shell)

一個Dockerfile里只能有一個CMD,如果有多個,只有最后一個生效。

標簽:鶴壁 江蘇 儋州 鄂州 長春 茂名 龍巖 安康

巨人網絡通訊聲明:本文標題《Docker的Dockerfile腳本基本使用指南》,本文關鍵詞  Docker,的,Dockerfile,腳本,基本,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Docker的Dockerfile腳本基本使用指南》相關的同類信息!
  • 本頁收集關于Docker的Dockerfile腳本基本使用指南的相關信息資訊供網民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    国产精品1区2区3区| 国产欧美日产一区| 亚洲成av人**亚洲成av**| 日韩免费成人网| 亚洲女同一区二区| 99精品国产99久久久久久白柏| 久久久蜜桃精品| 丰满白嫩尤物一区二区| **网站欧美大片在线观看| 日本精品视频一区二区三区| 天堂在线亚洲视频| 欧美成人在线直播| 成人av网址在线| 一级女性全黄久久生活片免费| 欧美疯狂性受xxxxx喷水图片| 开心九九激情九九欧美日韩精美视频电影 | 色一区在线观看| 五月婷婷另类国产| 久久久影视传媒| 国产成人av一区| 亚洲bt欧美bt精品| 日韩欧美精品三级| 成人黄色大片在线观看| 欧美男人的天堂一二区| 青青草97国产精品免费观看| 精品人伦一区二区色婷婷| 精品一区二区三区的国产在线播放| 精品欧美一区二区久久| 成人激情动漫在线观看| 一区二区三区日本| 91在线视频免费观看| 亚洲chinese男男1069| 欧美妇女性影城| 国产黑丝在线一区二区三区| 中文字幕中文字幕一区二区 | 91亚洲男人天堂| 亚洲成人www| 久久精品视频网| 99久久精品一区二区| 亚洲高清不卡在线观看| 欧美电影免费观看高清完整版在线| 韩国一区二区三区| 玉足女爽爽91| 久久影院电视剧免费观看| 91在线观看高清| 麻豆国产精品一区二区三区| 国产农村妇女毛片精品久久麻豆 | 欧美日韩国产123区| 精品一区在线看| 亚洲精品免费在线播放| 日韩欧美国产系列| 一本色道亚洲精品aⅴ| 免费观看在线色综合| 日本一区二区三区四区在线视频| 欧美做爰猛烈大尺度电影无法无天| 精一区二区三区| 国产精品短视频| 日韩三级av在线播放| 91免费看片在线观看| 国产一区二区美女| 视频一区视频二区中文字幕| 国产精品久线在线观看| 日韩三级伦理片妻子的秘密按摩| 91农村精品一区二区在线| 天堂久久久久va久久久久| 欧美激情一区二区在线| 久久久亚洲欧洲日产国码αv| 欧美性大战xxxxx久久久| www.欧美精品一二区| 韩国女主播一区二区三区| 亚洲大片在线观看| 综合自拍亚洲综合图不卡区| 久久久午夜电影| 日韩一卡二卡三卡四卡| 色拍拍在线精品视频8848| 国产一区二区三区四区在线观看| 亚洲成av人片在线观看无码| 亚洲你懂的在线视频| 国产精品久久久久久久久快鸭| 久久婷婷国产综合国色天香| 欧美一区二区三区白人| 欧美日本高清视频在线观看| 欧美三区在线观看| 欧美在线一区二区| 在线中文字幕不卡| 欧美中文字幕亚洲一区二区va在线| 福利视频网站一区二区三区| 久久成人综合网| 日韩在线一二三区| 蜜臀国产一区二区三区在线播放| 日韩国产成人精品| 男女男精品视频| 美国av一区二区| 久久国产精品99精品国产| 久久成人综合网| 国产乱码精品1区2区3区| 韩国精品主播一区二区在线观看| 极品美女销魂一区二区三区 | 国产精品久久久久久亚洲伦| 久久精品一区八戒影视| 久久久久久久久久久电影| 国产婷婷色一区二区三区在线| 日韩欧美国产一区二区三区| 337p粉嫩大胆色噜噜噜噜亚洲| 久久亚区不卡日本| 中文字幕av在线一区二区三区| 中文字幕在线免费不卡| 一区二区三区毛片| 午夜亚洲福利老司机| 夜夜精品视频一区二区| 捆绑变态av一区二区三区| 国产一区二区三区综合| 国产91露脸合集magnet| 91污在线观看| 欧美日韩一区二区在线视频| 日韩一区二区三区在线视频| 久久精品一区蜜桃臀影院| 国产精品久久久久久久久免费相片| 亚洲精品视频在线观看网站| 日韩综合在线视频| 国产伦精品一区二区三区视频青涩 | 亚洲欧洲一区二区在线播放| 亚洲第一在线综合网站| 狠狠色综合色综合网络| 成人黄色电影在线 | 亚洲乱码国产乱码精品精可以看| 午夜精品视频一区| 国产成人精品三级| 欧美在线观看一区| 久久影院电视剧免费观看| 亚洲男人天堂一区| 精品系列免费在线观看| 99久精品国产| 日韩精品一区二区三区在线观看 | 久久久亚洲午夜电影| 一区二区三区四区激情| 精品写真视频在线观看| 色欧美片视频在线观看 | 欧美日韩一级二级三级| 亚洲精品一区二区精华| 夜夜精品浪潮av一区二区三区| 国产伦精品一区二区三区免费迷| 欧美三区在线观看| 欧美经典三级视频一区二区三区| 午夜精品成人在线视频| av成人老司机| 精品国产免费人成电影在线观看四季| 亚洲欧美日韩中文播放| 国产乱码精品一区二区三| 色88888久久久久久影院按摩| 日韩美女在线视频| 亚洲天堂网中文字| 成人伦理片在线| 日韩欧美的一区| 婷婷国产在线综合| 欧美亚洲国产一区在线观看网站| 久久亚洲精华国产精华液| 日韩成人一区二区三区在线观看| 91玉足脚交白嫩脚丫在线播放| 26uuu久久天堂性欧美| 丝瓜av网站精品一区二区| 色婷婷久久久久swag精品 | 中文字幕国产一区| 九九精品视频在线看| 欧美一区二区三级| 亚洲成av人片一区二区梦乃| 91九色02白丝porn| 中文欧美字幕免费| 奇米影视7777精品一区二区| 日韩一级大片在线| 五月婷婷激情综合| 欧美日韩亚洲综合一区| 一区二区三区四区五区视频在线观看| 风间由美性色一区二区三区| 久久综合中文字幕| 精品一区二区av| 精品乱码亚洲一区二区不卡| 免费人成在线不卡| 欧美第一区第二区| 极品美女销魂一区二区三区| 精品国产成人系列| 国产一区二三区| 久久久久久久久免费| 久久精品国产免费看久久精品| 欧美丰满少妇xxxbbb| 日本不卡中文字幕| 欧美一区二区三区日韩视频| 日日欢夜夜爽一区| 日韩美女在线视频| 国产在线精品国自产拍免费| 精品国产成人在线影院| 国产乱人伦偷精品视频不卡 | 国产一区二区精品久久91| 久久老女人爱爱| 久久99久久久欧美国产| 中日韩免费视频中文字幕| 91亚洲大成网污www| 亚洲一区二区欧美| 337p亚洲精品色噜噜| 三级久久三级久久久|