(八)dockerfile常用指令
(1)常用命令
-
FROM,指定base鏡像;
-
MAINTAINER,設定鏡像的作者,可以任意字串;
-
COPY,將檔案build context 復制到鏡像里,
COPY支持兩種形式:
? ①COPY src dest
? ②COPY ["src","dest"]
? 注意,src只能指定build context 中的檔案或者目錄,
-
ENV,設定環境變數,環境變數可以被后面的指令使用,
ENV MY_VERSION 1.3 RUN apt-get install mypackage=$MY_VERSION -
ADD,與copy類似,從build context復制檔案到鏡像,不同的是,如果src是歸檔檔案(tar,zip,tgz,xz等),檔案會被自動解壓到dest,
-
EXPOSE,指定容器中的行程會監聽某個埠,docker將該埠暴露出來,
-
VOLUME,將檔案或者目錄宣告為volume,
-
WORKDIR,為后面的RUN,CMD,ENTRYPOINT,ADD或者COPY指令設定鏡像中的當前目錄,
-
RUN,在容器中運行指定的命令,
-
CMD,容器啟動時運行指定的命令,dockerfile中可以添加多個CMD,但是只有最后一條生效,CMD命令可以被docker run之后的引數替換,
-
ENTRYPOINT,設定容器啟動時候運行的命令,dockerfile中可以有多個ENTRYPOINT指令,但是只有最后一條生效,CMD或者docker run之后的引數會被當做引數傳遞給ENTRYPOINT,
創建一個dockerfile:
root@cuiyongchao:/dockerfile# cat Dockerfile
#my dockerfile
FROM busybox
MAINTAINER [email protected]
WORKDIR /dockerfile
RUN touch tmpfil02
COPY ["testfile01","."]
ADD ["testfile01.tar.gz","."]
ENV WELCOM "YOU ARE IN MY CONTAINER,WELCOM!"
root@cuiyongchao:/dockerfile#
構建鏡像:
root@cuiyongchao:/dockerfile# docker build -t my-image .
Sending build context to Docker daemon 14.34kB
Step 1/7 : FROM busybox
---> f0b02e9d092d
Step 2/7 : MAINTAINER [email protected]
---> Running in 603035a08fa2
Removing intermediate container 603035a08fa2
---> 900411854c68
Step 3/7 : WORKDIR /dockerfile
---> Running in e81a95656061
Removing intermediate container e81a95656061
---> ab089ef583dd
Step 4/7 : RUN touch tmpfil02
---> Running in 25a5af1ebc5e
Removing intermediate container 25a5af1ebc5e
---> dc0c07e6400d
Step 5/7 : COPY ["testfile01","."]
---> 214e7ed1b78f
Step 6/7 : ADD ["testfile01.tar.gz","."]
---> 28dd901049c5
Step 7/7 : ENV WELCOM "YOU ARE IN MY CONTAINER,WELCOM!"
---> Running in cdd4dd07b271
Removing intermediate container cdd4dd07b271
---> a0fdf1e57442
Successfully built a0fdf1e57442
Successfully tagged my-image:latest
root@cuiyongchao:/dockerfile#
? ① 構建前確保 build context 中存在需要的檔案,
? ② 依次執行 Dockerfile 指令,完成構建,
? 運行容器,驗證鏡像:
root@cuiyongchao:/dockerfile# docker run -it my-image
/dockerfile # ls
testfile01 tmpfil02
/dockerfile # echo $WELCOM
YOU ARE IN MY CONTAINER,WELCOM!
/dockerfile #
? ① 進入容器,當前目錄即為 WORKDIR,如果 WORKDIR 不存在,Docker 會自動為我們創建,
? ② WORKDIR 中保存了我們希望的檔案和目錄:
目錄 testfile01:由 ADD 指令從 build context 復制的歸檔檔案 testfile01.tar.gz,已經自動解壓,
檔案 tmpfil02:由 RUN 指令創建,
檔案 testfile01:由 COPY 指令從 build context 復制,
? ③ ENV 指令定義的環境變數已經生效,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/199906.html
標籤:其他
下一篇:Python入門基礎語法知識2
