亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 基礎常識 > 正文

Docker的Dockerfile腳本基本使用指南

2020-10-21 21:51:08
字體:
供稿:網(wǎng)友

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

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

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

復制代碼
代碼如下:

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

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

FROM 命令

復制代碼
代碼如下:

FROM <image>



復制代碼
代碼如下:

FROM <image>:<tag>

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

復制代碼
代碼如下:

FROM ubuntu

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

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

復制代碼
代碼如下:

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命令用來指定維護者的姓名和聯(lián)系方式
如:

復制代碼
代碼如下:

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 命令設置在容器啟動時執(zhí)行命令

復制代碼
代碼如下:

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

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

復制代碼
代碼如下:

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

上面是官方例子,國內(nèi)建議換成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 命令
用于設置環(huán)境變量

復制代碼
代碼如下:

ENV <key> <value>

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

復制代碼
代碼如下:

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時設置或修改環(huán)境變量:

復制代碼
代碼如下:

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"]

創(chuàng)建一個掛載點用于共享目錄


WORKDIR 命令

復制代碼
代碼如下:

WORKDIR /path/to/workdir

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

復制代碼
代碼如下:

WORKDIR /a WORKDIR b WORKDIR c RUN pwd

其實是在 /a/b/c 下執(zhí)行 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,如果有多個,只有最后一個生效。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
六月丁香综合网| 可以看美女隐私的网站| 91人妻一区二区三区| 在线中文资源天堂| 欧美精品成人一区二区在线观看| 欧洲免费在线视频| 国产一区二区三区精品欧美日韩一区二区三区| 色琪琪丁香婷婷综合久久| 超碰精品在线观看| 黄色成人精品网站| 久久只有这里有精品| 一级黄色录像大片| 丰满人妻老熟妇伦人精品| 色琪琪免费视频网站| 久久精品欧美一区二区三区不卡| 狠狠人妻久久久久久综合| 黑人糟蹋人妻hd中文字幕| 国产精品天干天干在线综合| 精品美女久久久| av成人资源网| 97久久精品人人澡人人爽缅北| 国产美女免费观看| www.天堂在线| 2019一级黄色毛片免费看网| 国产精品久久久久久久av电影| 国产精品嫩草影院com| 亚洲欧美国产制服动漫| 欧美在线色图| 国产中文字幕日韩| 色综合天天视频在线观看| 91久热免费在线视频| 亚洲主播在线播放| xxxx69视频| 日韩av在线播放不卡| 免费成人av在线播放| 一分钟免费观看视频播放www| 久久久电影免费观看完整版| 国产深夜视频在线观看| 亚洲精品福利在线观看| 一区二区三区久久久久| 最近免费中文字幕中文高清百度| 波多野结衣一区二区三区在线观看| 精品视频免费在线播放| 成人18夜夜网深夜福利网| 久蕉在线视频| 欧美日韩中字一区| 欧美精品久久久| 欧美亚洲综合久久| 国产高清自拍视频在线观看| 老牛影视精品| 亚洲日本久久久午夜精品| av资源在线看| 精品二区三区线观看| 一级毛片高清视频| 国产精品一区视频| 欧美精品一级二级| 中文字幕 在线观看| 美女精品导航| 亚洲熟妇无码一区二区三区导航| www.爱爱.com| 99久久免费国产| 成年人视频在线免费看| 国产色产综合产在线视频| 国产毛片精品| 久久久久黄色片| 亚洲综合天堂网| 亚洲大尺度在线观看| 粗暴蹂躏中文一区二区三区| 欧美调教视频| 美女被艹视频网站| 国产又粗又长又黄的视频| 亚洲图片 自拍偷拍| 亚洲欧美日韩精品在线| jizz在线播放| 日日噜噜夜夜狠狠久久丁香五月| 中国黄色片免费看| 日韩一区二区视频| 精品国产免费人成电影在线观看四季| 日日夜夜网站| 国产精品视区| 亚洲精品在线视频播放| 亚洲图片自拍偷拍| 国产精品观看在线亚洲人成网| 亚洲欧洲日本mm| 国产综合久久久久影院| 日本三级午夜理伦三级三| 国产精品无码午夜福利| 久久久五月婷婷| 免费在线看电影| 国产探花在线免费观看| 乱人伦精品视频在线观看| 亚洲第一色av| 国产中文字幕二区| 无遮挡爽大片在线观看视频| 4444在线观看| 久久久久久久久免费视频| 久久99久久久久久久噜噜| 91小视频免费看| 在线永久免费观看黄网站| 91视频观看视频| av成人免费网站| 久久久欧美一区二区| 色哟哟国产精品色哟哟| 97超视频在线观看| 精品一区二区三区久久久| 丝袜国产免费观看| av成人免费观看| 久热久热免费视频中文字幕777| 99蜜桃在线观看免费视频网站| 色欲一区二区三区精品a片| 午夜久久免费观看| 日本美女一区二区三区| 黄色av观看| www.就去干.com| 欧美久久一级| 国产一区二区在线视频聊天| 欧美一区少妇| 国产女优裸体网站| 欧美成人a在线| 欧美亚洲另类在线观看| 综合五月激情网| 国产精品视频久久久久久| 欧美激情国产日韩| 好吊色一区二区三区| 日本久久综合网| 天堂网avav| 色影视在线视频资源站| 色欲无码人妻久久精品| av中文字幕在线| 99精品热视频| 国产成人av资源| 91免费版黄色| 精品一区免费| 国产一区在线观看麻豆| 免费大片在线观看www| 久久中文字幕在线观看| 在线观看的网站你懂的| 毛片一区二区| 亚洲中文字幕久久精品无码喷水| 日韩精品在线视频观看| 亚洲黄色三级视频| 国产精品成人3p一区二区三区| 久久丫精品忘忧草西安产品| 天堂成人娱乐在线视频免费播放网站| 77777_亚洲午夜久久多人| 中文无码精品一区二区三区| 日韩精品a在线观看91| 亚洲高清免费视频| 亚洲国产美女| 国产91免费看片| 日本亚洲视频在线| 久久午夜色播影院免费高清| 在线观看日韩av电影| 国产sm在线观看| 理论片大全免费理伦片| 午夜精品久久久久久久99热| 九九爱在线视频观看免费视频| the porn av| 男人的天堂亚洲在线| 香蕉精品久久| 老子影院午夜伦不卡大全| 亚洲911精品成人18网站| 日本免费不卡| 国产三级在线观看视频| 日韩精品一区二区三区高清免费| 日本亚洲精品| 欧美日韩中字一区| 你懂的在线观看视频| 日韩精品一区二区三区不卡| 成人毛片视频网站| 污污的网站在线免费观看| 国产h在线观看| 国产精品免费丝袜| 国产精品久久久久久久久晋中| 欧美一卡二卡在线观看| 一本到不卡精品视频在线观看| 日韩中文字幕久久久经典网| av在线女优影院| 国产美女久久久久| 国产美女性感在线观看懂色av| 北条麻妃一区二区三区中文字幕| 密臀av在线| 中文字幕第一页在线播放| 国产欧美日韩视频一区二区| 国产乱码精品一区二区三区忘忧草| 麻豆精品在线播放| 香港三级韩国三级日本三级| 热久久免费视频精品| 亚洲精品免费在线视频| 一级黄色大片免费观看| 国产伦精品一区二区三区妓女| 久久免费播放视频| 九九九九九伊人| 午夜精品一区二区三区电影天堂| 久久中文字幕一区二区| 国产男男gay体育生白袜| √天堂中文官网8在线| a级黄色免费视频| 国产精品久久久久无码av| 成人在线高清免费| 超碰在线播放97| www.欧美国产| 国产成人avxxxxx在线看| 久久久久久久综合色一本| 欧美在线视频在线播放完整版免费观看| 国内国产区免费视频| 日韩一中文字幕| 欧美精品中文字幕一区| av超碰在线观看| 欧美高清性xxxxhdvideosex| jizz在线观看中文| 国产精品国产三级国产三级人妇| 色欧美片视频在线观看在线视频| 99久久精品免费看国产四区| 中文字幕欧美日韩精品| 国产一区二区三区久久精品| 精品国产av色一区二区深夜久久| 91蝌蚪porny九色| 国内一区二区三区在线视频| 日本www高清| 欧美成人另类视频| 亚洲视频一区二区三区| 一区二区三区在线免费看| 久久av偷拍| 色婷婷亚洲一区二区三区| 久久中文字幕导航| 欧美不卡视频一区| 丝袜美腿一区二区三区| 青青草原综合久久大伊人精品优势| 91精品福利在线一区二区三区| 久久精品视频在线| 久久综合成人网| 囯产精品久久久久久| 2024亚洲男人天堂| 国产三级视频在线播放| 精品产国自在拍| 一区二区三区视频免费| 在线观看视频色潮| 一区二区三区四区在线免费视频| 亚洲国产成人私人影院| 亚洲国产精品精华液网站| 在线免费看污| 一色屋色费精品视频在线观看| 亚洲欧洲在线播放| 麻豆av在线免费观看| 曰韩不卡视频| 国产精品美女久久久久久| 成人在线视频国产| 久久99精品久久久久久园产越南| 日韩在线视频网| 日本不卡免费在线视频| 中文字幕高清在线观看| 国产中文字幕精品| 国产精品久久久一区二区三区| 国产网站免费在线观看| 日韩欧美大尺度| 精品三级国产| 丰满诱人av在线播放| 在线观看福利片| 国产一区二区三区蝌蚪| 精品亚洲永久免费| 欧美另类videos| 欧美tk丨vk视频| 在线观看v片| 久久精品色综合| 91精品国产91久久久久久青草| 精品久久人人做人人爱| 国产精品午夜在线| 亚洲羞羞网站| 亚洲国产日韩在线一区模特| 亚洲国产专区校园欧美| 天堂精品高清1区2区3区| 午夜电影一区二区三区| 久久精品色妇熟妇丰满人妻| 玖玖精品视频| 欧美性孕妇孕交| 亚洲综合图片区| 亚洲午夜国产一区99re久久| 国产精品美女www爽爽爽视频| 日韩美女视频中文字幕| 午夜影院在线| 一级黄色av| 开心丁香婷婷深爱五月| 91精品国产免费久久久久久| 婷婷激情图片久久| www视频在线免费观看| 成人永久免费视频| 精品久久久久香蕉网| 国产电影一区二区三区| 国产精品对白刺激久久久| 手机福利视频欧美| 日韩精品电影在线观看| 性色av蜜臀av浪潮av老女人| 亚洲精品大片www| 88在线观看91蜜桃国自产| 四虎地址8848jia| caoporm在线视频| 国产精品伦一区二区三区视频| 久久一二三四区| 电影91久久久| 日韩暖暖在线视频| 黑人巨大40cm重口| h网站久久久| 白丝美女让我捅| 欧美福利一区二区三区| 美女大黄三级视频在线观看| 国产一区二区三区视频在线播放| 国产娇喘精品一区二区三区图片| 日本一区二区视频在线| 精品久久久久av影院| 嫩草影院一二三| 日日操夜夜爽| 无套内谢的新婚少妇国语播放| 亚洲第一黄色片| 欧美日韩国产精品综合| 亚洲日本一区二区| 欧美另类专区| 欧美日韩国产亚洲沙发| 日本熟妇一区二区| 一级黄色片在线免费观看| 国产精品第一页在线观看| 男女曰b免费视频| 国产伦理在线观看| 妞干网视频在线观看| 成人黄色片视频| 麻豆av在线导航| 日韩视频在线一区二区三区| 国产一级一片免费播放放a|