午夜视频免费看_日韩三级电影网站_国产精品久久一级_亚洲一级在线播放_人妻体内射精一区二区三区_91夜夜揉人人捏人人添红杏_91福利在线导航_国产又粗又猛又黄又爽无遮挡_欧美日韩一区在线播放_中文字幕一区二区三区四区不卡 _日日夜夜精品视频免费观看_欧美韩日一区二区三区

主頁 > 知識庫 > 詳解Dockerfile 中的 COPY 與 ADD 命令

詳解Dockerfile 中的 COPY 與 ADD 命令

熱門標簽:大連400電話如何申請 新余高德地圖標注怎么修改 撫順地圖標注 高德地圖標注好做嗎 達亞電銷機器人官網 外呼系統坐席費計入會計哪個科目 電銷機器人價值 如何分析地圖標注 電銷機器人怎么接線路

Dockerfile 中提供了兩個非常相似的命令 COPY 和 ADD,本文嘗試解釋這兩個命令的基本功能,以及其異同點,然后總結其各自適合的應用場景。

Build 上下文的概念

在使用 docker build 命令通過 Dockerfile 創建鏡像時,會產生一個 build 上下文(context)。所謂的 build 上下文就是 docker build 命令的 PATH 或 URL 指定的路徑中的文件的集合。在鏡像 build 過程中可以引用上下文中的任何文件,比如我們要介紹的 COPY 和 ADD 命令,就可以引用上下文中的文件。

默認情況下 docker build -t testx . 命令中的 . 表示 build 上下文為當前目錄。當然我們可以指定一個目錄作為上下文,比如下面的命令:

$ docker build -t testx /home/nick/hc

我們指定 /home/nick/hc 目錄為 build 上下文,默認情況下 docker 會使用在上下文的根目錄下找到的 Dockerfile 文件。

COPY 和 ADD 命令不能拷貝上下文之外的本地文件

對于 COPY 和 ADD 命令來說,如果要把本地的文件拷貝到鏡像中,那么本地的文件必須是在上下文目錄中的文件。其實這一點很好解釋,因為在執行 build 命令時,docker 客戶端會把上下文中的所有文件發送給 docker daemon。考慮 docker 客戶端和 docker daemon 不在同一臺機器上的情況,build 命令只能從上下文中獲取文件。如果我們在 Dockerfile 的 COPY 和 ADD 命令中引用了上下文中沒有的文件,就會收到類似下面的錯誤:

與 WORKDIR 協同工作

WORKDIR 命令為后續的 RUN、CMD、COPY、ADD 等命令配置工作目錄。在設置了 WORKDIR 命令后,接下來的 COPY 和 ADD 命令中的相對路徑就是相對于 WORKDIR 指定的路徑。比如我們在 Dockerfile 中添加下面的命令:

WORKDIR /app
COPY checkredis.py .

然后構建名稱為 testx 的容器鏡像,并運行一個容器查看文件路徑:

checkredis.py 文件就是被復制到了 WORKDIR /app 目錄下。

COPY 命令的簡單性

如果僅僅是把本地的文件拷貝到容器鏡像中,COPY 命令是最合適不過的。其命令的格式為:
COPY <src> <dest>

除了指定完整的文件名外,COPY 命令還支持 Go 風格的通配符,比如:

COPY check* /testdir/           # 拷貝所有 check 開頭的文件
COPY check?.log /testdir/       # ? 是單個字符的占位符,比如匹配文件 check1.log

對于目錄而言,COPY 和 ADD 命令具有相同的特點:只復制目錄中的內容而不包含目錄自身。比如我們在 Dockerfile 中添加下面的命令:

WORKDIR /app
COPY nickdir .

其中 nickdir 目錄的結構如下:

重新構建鏡像 testx,運行一個容器并查看 /app 目錄下的內容:

這里只有 file1 和 file2,少了一層目錄 nickdir。如果想讓 file1 和 file2 還保存在 nickdir 目錄中,需要在目標路徑中指定這個目錄的名稱,比如:

WORKDIR /app
COPY nickdir ./nickdir

COPY 命令區別于 ADD 命令的一個用法是在 multistage 場景下。關于 multistage 的介紹和用法請參考筆者的《Dockerfile 中的 multi-stage》一文。在 multistage 的用法中,可以使用 COPY 命令把前一階段構建的產物拷貝到另一個鏡像中,比如:

FROM golang:1.7.3
WORKDIR /go/src/github.com/sparkdevo/href-counter/
RUN go get -d -v golang.org/x/net/html
COPY app.go    .
RUN CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o app .
FROM alpine:latest
RUN apk --no-cache add ca-certificates
WORKDIR /root/
COPY --from=0 /go/src/github.com/sparkdevo/href-counter/app .
CMD ["./app"]

這段代碼引用自《Dockerfile 中的 multi-stage》一文,其中的 COPY 命令通過指定 --from=0 參數,把前一階段構建的產物拷貝到了當前的鏡像中。

ADD 命令還可以干其它事情

ADD 命令的格式和 COPY 命令相同,也是:

ADD <src> <dest>

除了不能用在 multistage 的場景下,ADD 命令可以完成 COPY 命令的所有功能,并且還可以完成兩類超酷的功能:

•解壓壓縮文件并把它們添加到鏡像中
•從 url 拷貝文件到鏡像中

當然,這些功能也讓 ADD 命令用起來復雜一些,不如 COPY 命令那么直觀。

解壓壓縮文件并把它們添加到鏡像中

如果我們有一個壓縮文件包,并且需要把這個壓縮包中的文件添加到鏡像中。需不需要先解開壓縮包然后執行 COPY 命令呢?當然不需要!我們可以通過 ADD 命令一次搞定:

WORKDIR /app
ADD nickdir.tar.gz .

這應該是 ADD 命令的最佳使用場景了!

從 url 拷貝文件到鏡像中

這是一個更加酷炫的用法!但是在docker 官方文檔的最佳實踐中卻強烈建議不要這么用!!docker 官方建議我們當需要從遠程復制文件時,最好使用 curl 或 wget 命令來代替 ADD 命令。原因是,當使用 ADD 命令時,會創建更多的鏡像層,當然鏡像的 size 也會更大(下面的兩段代碼來自 docker 官方文檔):

ADD http://example.com/big.tar.xz /usr/src/things/
RUN tar -xJf /usr/src/things/big.tar.xz -C /usr/src/things
RUN make -C /usr/src/things all

如果使用下面的命令,不僅鏡像的層數減少,而且鏡像中也不包含 big.tar.xz 文件:

RUN mkdir -p /usr/src/things \
    && curl -SL http://example.com/big.tar.xz \
    | tar -xJC /usr/src/things \
    && make -C /usr/src/things all

好吧,看起來只有在解壓壓縮文件并把它們添加到鏡像中時才需要 ADD 命令!

加速鏡像構建的技巧

在使用 COPY 和 ADD 命令時,我們可以通過一些技巧來加速鏡像的 build 過程。比如把那些最不容易發生變化的文件的拷貝操作放在較低的鏡像層中,這樣在重新 build 鏡像時就會使用前面 build 產生的緩存。比如筆者構建鏡像時需要用到下面幾個文件:

其中 myhc.py 文件不經常變化,而 checkmongo.py、checkmysql.py 和 checkredis.py 這三個文件則經常變化,那么我們可這樣來設計 Dockerfile 文件:

WORKDIR /app
COPY myhc.py .
COPY check* ./

讓 COPY myhc.py . 單獨占據一個鏡像層,當 build 過一次后,每次因 checkmongo.py、checkmysql.py 和 checkredis.py 這三個文件變化而導致的重新 build 都不會重新 build COPY myhc.py . 鏡像層:

如上圖所示,第二步和第三步都沒有重新 build 鏡像層,而是使用了之前的緩存,從第四步才開始重新 build 了鏡像層。當文件 size 比較大且文件的數量又比較多,尤其是需要執行安裝等操作時,這樣的設計對于 build 速度的提升還是很明顯的。所以我們應該盡量選擇能夠使用緩存的 Dockerfile 寫法。

總結

當第一次看到 COPY 和 ADD 命令時不免讓人感到疑惑。但分析之后大家會發現 COPY 命令是為最基本的用法設計的,概念清晰,操作簡單。而 ADD 命令基本上是 COPY 命令的超集(除了 multistage 場景),可以實現一些方便、酷炫的拷貝操作。ADD 命令在增加了功能的同時也增加了使用它的復雜度,比如從 url 拷貝壓縮文件時弊大于利。希望本文能夠解去大家對 Dockerfile 中 COPY 和 ADD 命令的疑惑。

參考:

Docker COPY: Dockerfile best practices

Best practices for writing Dockerfiles

Dockerfile COPY

Dockerfile ADD

以上所述是小編給大家介紹的Dockerfile 中的 COPY 與 ADD 命令,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!

標簽:衡水 黃石 楊凌 遼源 南通 新鄉 海東 湖南

巨人網絡通訊聲明:本文標題《詳解Dockerfile 中的 COPY 與 ADD 命令》,本文關鍵詞  詳解,Dockerfile,中的,COPY,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《詳解Dockerfile 中的 COPY 與 ADD 命令》相關的同類信息!
  • 本頁收集關于詳解Dockerfile 中的 COPY 與 ADD 命令的相關信息資訊供網民參考!
  • 推薦文章
    国产美女裸体无遮挡免费视频| 日韩欧美成人一区二区三区| 日韩欧美中文免费| 99re在线观看| 最新中文字幕第一页| 久久99欧美| 欧美最猛性xxxxx(亚洲精品)| 久久91超碰青草是什么| 久久精品国产一区| 中文字幕亚洲色图| 国产亚洲精品高潮| 亚洲欧美国产一区二区三区| 色悠悠久久综合网| 国产视频在线观看视频| 成人涩涩免费视频| 欧美一区二区视频在线观看| 国产日韩欧美成人| 久久精品视频16| 免费在线观看a视频| 五十路在线观看| 午夜精品福利在线| 欧美乱人伦中文字幕在线| 欧美在线视频二区| 少妇熟女视频一区二区三区| 亚欧在线观看视频| 日韩黄色片网站| 久久久久久夜| 精品国产福利视频| 欧美夫妻性视频| 麻豆视频成人| 午夜啪啪小视频| 唐朝av高清盛宴| 日韩成人免费电影| 日本乱人伦aⅴ精品| 久久亚洲国产精品| 成人毛片视频网站| 欧美一级特黄高清视频| 巨乳诱惑日韩免费av| 91搞黄在线观看| 欧美精品videos| 黄色影院一级片| 久久久久久久极品内射| 国产成人免费网站| 亚洲第一福利在线观看| 日本一区二区在线播放| 欧美黄色一级片视频| 91精品国产乱码久久久| 久久蜜桃精品| 亚洲视频在线免费播放| 性做久久久久久免费观看| 青青草国产精品亚洲专区无| 另类小说视频一区二区| 韩国女主播成人在线| 污污的视频免费观看| 狂野欧美一区| 亚洲图片欧美午夜| 一级黄色香蕉视频| 国产精品性做久久久久久| 色爱精品视频一区| 日本黄色的视频| 成人av在线影院| 欧美在线视频一区二区| 99久久99久久精品免费看小说.| 国产欧美一区二区在线| 欧美一区第一页| 91中文字幕永久在线| 国产精品久久久久影院老司| 亚洲一区免费网站| 日韩欧美中文字幕一区二区| 欧美色成人综合| 日本高清xxxx| 激情五月激情综合网| 亚洲日韩中文字幕| 怡红院av亚洲一区二区三区h| 午夜精品久久久久久久91蜜桃| 国产精品入口麻豆九色| 91精品久久久久久久久久| 亚洲天堂日韩电影| 欧美极品少妇xxxxx| 国产欧美在线观看| 欧美日韩一区二| 国产美女在线一区| 国产精品免费视频一区二区| 国产成人麻豆免费观看| 亚洲欧美在线免费观看| 中文字幕天堂av| 亚洲综合免费观看高清完整版| 日韩久久不卡| 久久久亚洲人| 久久久亚洲成人| 欧美成人一二三区| 日韩精品一区二区三区三区免费| 日本不卡一区在线| 亚洲美女免费在线| 一级性生活视频| 大尺度一区二区| 国产精品一区二区不卡视频| 视频一区 中文字幕| 欧美激情手机在线视频| 日日夜夜狠狠操| 欧美日韩国产色站一区二区三区| 午夜欧美性电影| 羞羞影院体验区| 欧美日韩高清一区二区| 老司机午夜免费福利| 欧美一区二区黄片| avtt天堂在线| www.日日夜夜| 高清国产一区二区三区| 亚洲三级免费观看| 日韩一区二区精品在线观看| 久久亚洲私人国产精品va| 91日本在线观看| 欧美美女网站色| 无人在线观看的免费高清视频 | 国产女人18水真多毛片18精品| 91麻豆精品国产91久久久| 欧美视频亚洲图片| 午夜在线成人av| 不卡影院一区二区| 国产精品国产a| www.xxx麻豆| 亚洲国产精品激情在线观看| 椎名由奈jux491在线播放| 国产精品一区二区久久不卡 | 久久国产精品久久国产精品| 国产精久久久久久| 一区二区三区无码高清视频| 麻豆视频在线观看| 伊人成人开心激情综合网| 国产又粗又猛又色| 国产精品网友自拍| 亚洲在线播放电影| 国产精品伦一区二区三级视频| 在线播放日韩精品| 欧美色偷偷大香| 欧美成人性色生活仑片| 国外成人在线视频网站| 日本中文字幕高清| 久久久久国产精品夜夜夜夜夜| 肉肉av福利一精品导航| 亚洲欧洲色图综合| 欧美成人一区二区三区在线观看| 91精品国产闺蜜国产在线闺蜜| 中文字幕欧美日韩在线| 一级片视频免费| 国产在线高清精品| 日本在线不卡视频| 日本精品一区| 欧美激情一区三区| 日本三级黄色网址| 欧美日韩国产区一| 亚洲精品久久久久久下一站 | 免费看一级大黄情大片| 久久综合狠狠综合久久综合88 | 亚洲精品在线观看www| 中文字幕美女视频| 国产精品午夜视频| 精品一区二区三区av| 成人在线看片| av电影天堂一区二区在线| 日韩av在线播放不卡| 国产一区在线不卡| 第一区免费在线观看| 亚洲大片精品永久免费| 五月婷婷丁香色| 亚洲天堂男人的天堂| 国产黄a三级三级三级| 国产日韩欧美91| 日韩在线观看视频一区| 国产精品狼人色视频一区| 国产精品久久久久9999爆乳| 六月婷婷色综合| 国产精品久久久久福利| 久久黄色影院| 国产精品嫩草视频| 欧美色图亚洲视频| 菠萝蜜影院一区二区免费| 97免费在线观看视频| 国产成人亚洲欧美| 一区二区视频在线看| 蜜臀av免费观看| 亚洲欧洲精品一区二区精品久久久| 青青草成人免费在线视频| 自拍偷拍欧美激情| 一级黄色录像在线观看| 欧美一区二区三区免费| 国产福利在线导航| 91精品国产品国语在线不卡| 99热国产在线观看| 全黄性性激高免费视频| 97不卡在线视频| 欧美影院午夜播放| 成年人视频免费| 国产一区二区三区在线免费| 一区二区三区日韩在线| 国产一区日韩二区欧美三区| 人妻精品久久久久中文字幕69| 久青草国产97香蕉在线视频| 在线观看日本视频| 国产精品亚洲欧美导航| 麻豆久久久久久| 热久久最新地址| 亚洲人成精品久久久久久| 麻豆成人在线视频| 国产在线拍揄自揄视频不卡99 | 亚洲黄色一区二区三区| 精品一二三四在线| 欧美国产一区二区在线| 国产亚洲一本大道中文在线| 国产免费a级片| 午夜免费在线观看精品视频| 一区二区三区在线观看国产| 精国产品一区二区三区a片| www.久久久| 日韩欧美国产免费播放| 久热免费在线观看| 俺去亚洲欧洲欧美日韩| 不卡电影免费在线播放一区| 亚洲色成人网站www永久四虎| 精品在线视频一区二区| 久久中文字幕视频| 亚洲在线中文字幕| 久久精品二区亚洲w码| 国产又粗又硬视频| 成人在线免费高清视频| 欧美做受高潮1| 亚洲国产毛片aaaaa无费看 | 欧美三级乱人伦电影| 91午夜交换视频| 国产激情片在线观看| 一本到不卡精品视频在线观看| 日韩在线不卡av| 99视频免费观看| 中文字幕欧美亚洲| 图片区小说区区亚洲影院| 久久婷婷一区二区| 韩国成人一区| 亚洲成人激情视频| 久久国产生活片100| 亚洲精品乱码久久久久久久| 日韩精品丝袜在线| 成人午夜激情影院| 希岛爱理中文字幕| 999一区二区三区| 插插插亚洲综合网| 午夜久久久久久久久| 这里只有精品6| 日本精品一区二区三区不卡无字幕| 日韩欧美aaa| 成人精品在线播放| 亚洲欧洲日本精品| 韩日欧美一区二区| 成人精品视频一区二区三区| 狠狠人妻久久久久久综合蜜桃| 91大片在线观看| 欧美激情精品久久久久久| 91精品国产综合久久久久久| 国产传媒欧美日韩成人| 青花影视在线观看免费高清| 亚洲三级一区| 51视频国产精品一区二区| 激情久久五月天| 人妻大战黑人白浆狂泄| 一区二区三区四区在线视频 | 白丝女仆被免费网站| 日韩av一卡二卡三卡| 中文字幕永久视频| 杨幂一区欧美专区| 免费中文日韩| 人九九综合九九宗合| 精品成人一区二区三区四区| 亚洲码国产岛国毛片在线| 国产麻豆一精品一男同| 少妇精品无码一区二区| 亚洲国产精品www| 久久久99久久精品女同性| 99久久久久久久| 91成人精品一区二区| 久久精品国产综合精品| 欧美成人高清电影在线| 成人18精品视频| 亚洲香蕉在线视频| 亚洲影院在线播放| 97在线观看免费视频| 免费cad大片在线观看| 91av在线视频观看| 精品人在线二区三区| 国产精品久久福利| 丰满人妻av一区二区三区| 男人搞女人网站| 欧美裸体网站| 精品国产欧美成人夜夜嗨| 91久久精品一区二区三区| 欧美性猛交99久久久久99按摩| 亚洲国产欧美日韩另类综合| 亚洲精品成人精品456| 久久精品视频在线看| 亚洲欧洲一区二区在线播放| 91视频com| 91丨porny丨蝌蚪视频| 日韩电影在线一区二区三区| 免费观看一区二区三区毛片| 一级二级黄色片| 一区二区三区一级片| 亚洲直播在线一区| 免费成人高清视频| 欧美撒尿777hd撒尿| 亚洲图片你懂的| 欧美一级性视频| 一区二区视频免费看| 亚洲香蕉中文网| 中国免费黄色片| 六月婷婷七月丁香| 99视频精品全部免费看| 国产美女久久久| 欧美华人在线视频| 中文字幕免费精品一区| 亚洲国产aⅴ天堂久久| 日韩和欧美一区二区| 免费看污视频的网站| 亚洲国产日韩一区无码精品久久久| 久久久精品高清| 国产亚洲综合视频| 国产精品高清一区二区三区| 欧美韩国理论所午夜片917电影| 日韩精品免费视频| 在线播放国产一区中文字幕剧情欧美| 伊人伊成久久人综合网小说| 中文字幕欧美日韩在线| 欧美精品精品一区| 欧美日韩国产综合一区二区 | 四季av日韩精品一区| 五月婷婷综合在线观看| 图片区偷拍区小说区| 三级黄色片免费看| 亚洲成色www.777999| 天天干天天曰天天操| 麻豆网址在线观看| 亚洲系列第一页| 久久91精品久久久久久秒播| 综合精品久久久| 亚洲成人av资源| 精品视频在线免费| 精品亚洲夜色av98在线观看| 亚洲片av在线| 日韩欧美中文字幕精品| 亚洲精品国偷自产在线99热| 欧美视频完全免费看| 欧美人牲a欧美精品| 一本大道久久a久久精二百| 亚洲国产欧美在线人成| 色av一区二区| 一区二区三区欧美视频| 久久久亚洲综合| 91在线精品秘密一区二区| 粉嫩嫩av羞羞动漫久久久| 亚洲图片欧美激情| 精品少妇一区二区三区| 九九热精品视频| 色老头一区二区三区在线观看| 欧美高清电影在线看| 欧美精品九九久久| 青草热久免费精品视频| www.国产一区| 亚洲第一男人av| 日韩经典中文字幕在线观看| 亚洲精品影视在线观看| 欧美激情va永久在线播放| 91传媒视频在线观看| 国产爆乳无码一区二区麻豆| 欧美三级理论片| 久久精品视频日本| 久久精品国产在热久久| 最新热久久免费视频| 欧美私人免费视频| 中文字幕亚洲第一| 成人午夜在线影院| 日韩电影大全在线观看| 99porn视频在线| 欧美交换配乱吟粗大25p| 欧美黄网在线观看| www黄色av| 国产精品偷伦视频免费观看了| 亚洲の无码国产の无码步美| 国产3级在线观看| 国产美女裸体无遮挡免费视频| 一本色道久久综合亚洲| 日韩中文字幕免费观看| 激情综合色播五月| 欧美激情在线观看视频免费| 欧美精品自拍偷拍动漫精品| 麻豆国产精品va在线观看不卡| 国产成人精品在线| 国产高清一区视频| 中文字幕成人一区| www.这里只有精品| 91日韩中文字幕| 久久久一区二区三区四区| 天天看天天摸天天操| 中文字幕在线观看精品| 日韩精品国产精品| 97se亚洲国产综合自在线| 欧美日韩在线视频一区| 亚洲欧美综合v| 亚洲一区二区免费| 黄色一级片黄色| 可以看的av网址| 欧美成人一二三区| 亚洲中文字幕在线观看|