docker系列之file基本操作
阿新 • • 發佈:2018-06-19
IV 情況 文件命名 數據 ... strong ID 支持 默認
中某條命令有錯, 也是在當前中止, 過程中的"中間鏡像"及"當前構建用的容器"仍然存在的.
dockerfile基礎操作
Dockerfile 是記錄了鏡像是如何被構建出來的配置文件, 可以被 docker
直接執行以創建一個鏡像. 它的樣子:
FROM ubuntu:14.04 MAINTAINER YS.Zou <> ADD run /root/run ADD sources.list /etc/apt/sources.list ADD id_rsa.pub /tmp/pubkey ADD requirements /root/requirements RUN mkdir -p /root/.ssh && cat /tmp/pubkey >> /root/.ssh/authorized_keys && rm -rf /tmp/pubkey ... CMD ["bash", "/root/run"]
把文件命名為 Dockerfile
, 進入文件所在目錄, 輸入:
docker build .
就可以開始構建過程, 並且得到一個新的鏡像了.
Dockerfile 支持一些很簡單的命令:
- FROM
- 以哪個鏡像為基礎開始構建.
- MAINTAINER
- 作者信息.
- RUN
- 運行一條命令.
- CMD
docker run IMAGE_ID cmd
這裏的默認命令.- ENTRYPOINT
docker run IMAGE_ID cmd
這裏的默認命令的前面部分,run
中cmd
可以作為後續參數.- EXPOSE
- 聲明會用到的端口.
- ENV
- 設置環境變量
- ADD
- 從當前目錄復制文件到容器. 會自動處理目錄, 壓縮包等情況.
- COPY
- 從當前目錄復制文件到容器. 只是單純地復制文件.
- VOLUME
- 聲明一個數據卷, 可用於掛載.
- USER
- RUN 命令執行時的用戶.
- WORKDIR
- RUN, CMD, ENTRYPOINT 這些命令執行時的當前目錄.
- ONBUILD
- 前綴命令, 放在上面這些命令前面, 表示生成的鏡像再次作為"基礎鏡像"被用於構建時, 要執行的命令.
build
的過程, 會依次執行上面的命令, 實際上, docker 做的事, 也就是從基礎鏡像啟一個容器, 然後執行一條命令, 修改之後提交此容器為新鏡像. 以此類推, 直到所有命令都執行完. 所以在得到最終構建的鏡像時, 會生成很多"中間鏡像". 而如果 Dockerfile
docker系列之file基本操作