dockerfile講解

dockerfile講解

  • FROM
    FROM scratch 製作base image
    FROM centos 使用base image
    FROM ubuntu:14.04 使用base image

  • LABEL
    maintainer 維護者
    descripe 描述

  • RUN 執行命令並創建新的image layer,(構建image時用來執行命令)
    RUN shell命令 儘量多個命令合併爲一 這樣可以少創建image的layer

  • WORKDIR /test 類似設置家目錄 如果沒有會自動創建test目錄

  • ADD 和 COPY
    add hello /
    add test.tar.gz / 添加到根目錄並解壓縮

添加本地文件用add和copy 添加遠程文件用curl和wget
  • ENV #設置常量
    ENV MYSOL_VERSION 5.6
    RUN apt-get install -y mysql-server="${MYSOL_VERSION}"
    && rm -rf /var/lib/apt/list/* #引用常量

  • VOLUME 和 EXPOSE

  • CMD 和 ENTRYPOINT
    CMD
    設置容器啓動後默認執行的命令和參數。
    如果docker run指定了其他命令,CMD命令被忽略。
    如果定義了多個CMD,只有最後一個會執行。
    ENTRYPOINT
    設置容器啓動時運行的命令
    讓容器以應用程序或者服務的形式運行
    不會被忽略,一定會執行
    最佳實踐:寫一個shell腳本作爲entrypoint。 ENTRYPOINT [“a.sh”]

  • shell和exec格式
    shell格式
    RUN apt-get install -y vim
    CMD echo “hello docker”
    ENTRYPOINT echo “hello docker”
    exec格式
    RUN [“apt-get”, “install”, “-y”, “vim”]
    CMD ["/bin/echo", “hello docker”]
    ENTRYPOINT ["/bin/echo", “hello docker”]

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章