亚洲成在人线在线播放无码vr|亚洲成熟女同—区二区三区|日韩精品一区二区中文在线|97欧美精品一区二区三区

  • <strike id="14xru"></strike>
  • <object id="14xru"></object>

  • <th id="14xru"></th>
      <strike id="14xru"><video id="14xru"></video></strike>
      1. 湖北企業(yè)新聞網(wǎng),歡迎您!

        幫助中心 廣告聯(lián)系

        網(wǎng)站關(guān)鍵詞: 湖北企業(yè)新聞網(wǎng)

        Docker鏡像和Dockerfile詳解!

        來源:時間:2020-11-19 14:30:11 閱讀:-

        鏡像是容器的模板,容器是鏡像運行的實例,可以類比為模具和實物的關(guān)系或者編程語言里面"類"和"實例"的關(guān)系,鏡像是靜態(tài)的定義,容器是動態(tài)運行的實體

        一、鏡像的構(gòu)成

        hello-world

        Hello-world是docker官方提供的一個很小的鏡像,用來測試docker是否正確運行

        $ docker run hello-world$ docker images
        Docker鏡像和Dockerfile詳解

        這個鏡像才1.04kb,我們看下他的Dockerfile描述

        FROM scratchCOPY hello /CMD ["/hello"]

        (1) FROM scratch 說明鏡像是白手起家,從0開始構(gòu)建

        (2) COPY hello / 將文件"hello"復(fù)制到鏡像的目錄

        (3) CMD ["/hello"] 容器啟動時執(zhí)行 /hello

        二、Dockerfile的構(gòu)建

        概念:Dockerfile 是一個包含創(chuàng)建鏡像所有命令的文本文件,通過docker build命令可以根據(jù) Dockerfile 的內(nèi)容構(gòu)建我們自己需要的鏡像

        base鏡像:

        a、不依賴其他鏡像,從scratch開始

        b、以其他鏡像為基礎(chǔ)擴展

        Dockerfile常用指令,主要分為配置指令和操作指令,一圖展示各種命令


        Docker鏡像和Dockerfile詳解

        dockerfile常用命令

        配置指令

        2.1、ARG(定義鏡像創(chuàng)建過程中的變量)

        用法:ARG []

        2.2、FROM

        用法:FROM 
        • FROM指定構(gòu)建鏡像的基礎(chǔ)源鏡像,如果本地沒有該鏡像,默認會從 DockerHub上拉取鏡像
        • FROM scratch 說明鏡像是從0開始構(gòu)建,不依賴其他鏡像
        • FROM可以在一個 Dockerfile 中出現(xiàn)多次,如果有需求在一個 Dockerfile 中創(chuàng)建多個鏡像

        2.3、LABEL

        用法:LABEL = = =

        例如:LABEL version="l.0.0-rc3"

        LABEL author="yeasy@github" date="2020-01-01"

        2.4、EXPOSE(聲明鏡像內(nèi)服務(wù)監(jiān)聽的端口)

        用法:EXPOSE 

        例如:EXPOSE 22 80 8443

        2.5、ENV

        用法:ENV  或 ENV =

        例如:

        ENV APP_VERSION=1.0.0

        ENV APP_HOME=/usr/local/bin

        ENV PATH $PATH:/usr/local/bin

        2.6、ENTRYPOINT

        支持兩種格式:

        □ ENTRYPOINT ["executable", "paraml ", "param2"]:exec 調(diào)用執(zhí)行;

        □ ENTRYPOINT command param 1 param2: shell 中執(zhí)行;

        每個Dockerfile 中只能有一個ENTRYPOINT, 當指定多個時,只有最后一個起效。

        2.7、WORKDIR

        指定工作目錄

        用法:WORKDIR 

        WORKDIR /root/test

        操作指令

        2.8、RUN

        用法:RUN 

        例如:

        RUN apt-get update \

        && apt-get install -y libsnappy-dev zliblg-dev libbz2-dev \

        && rm -rf /var/cache/apt

        2.9、CMD(啟動容器時指定默認執(zhí)行的命令)

        用法:CMD command paraml param2 :在默認的Shell 中執(zhí)行

        每個Dockerfile 只能有一條CMD 命令。如果指定了多條命令,只有最后一條會被執(zhí)行

        2.10、ADD

        格式為ADD  

        COPY的作用和ADD類似,這里不再贅述

        三、通過示例練習Dockerfile

        # This my first nginx Dockerfile# Version 1.0# Base images 基礎(chǔ)鏡像FROM centos#MAINTAINER 維護者信息MAINTAINER pythontaotao#ENV 設(shè)置環(huán)境變量ENV PATH /usr/local/nginx/sbin:$PATH#ADD  文件放在當前目錄下,拷過去會自動解壓ADD nginx-1.8.0.tar.gz /usr/local/  ADD epel-release-latest-7.noarch.rpm /usr/local/  #RUN 執(zhí)行以下命令 RUN rpm -ivh /usr/local/epel-release-latest-7.noarch.rpmRUN yum install -y wget lftp gcc gcc-c++ make openssl-devel pcre-devel pcre && yum clean allRUN useradd -s /sbin/nologin -M www#WORKDIR 相當于cdWORKDIR /usr/local/nginx-1.8.0 RUN ./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_ssl_module --with-pcre && make && make installRUN echo "daemon off;" >> /etc/nginx.conf#EXPOSE 映射端口EXPOSE 80#CMD 運行以下命令CMD ["nginx"]
        推薦閱讀:車展網(wǎng)