<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                [TOC] ## Dockerfile介紹 Dockerfile是docker構建鏡像的基礎,也是docker區別于其他容器的重要特征,正是有了Dockerfile,docker的自動化和可移植性才成為可能。 不論是開發還是運維,學會編寫Dockerfile幾乎是必備的,這有助于你理解整個容器的運行。 FROM , 從一個基礎鏡像構建新的鏡像 FROM ubuntu MAINTAINER , 維護者信息 MAINTAINER William <wlj@nicescale.com> ENV , 設置環境變量 ENV TEST 1 RUN , 非交互式運行shell命令 RUN apt-get -y update RUN apt-get -y install nginx ADD , 將外部文件拷貝到鏡像里,src可以為url ADD http://nicescale.com/ /data/nicescale.tgz # 將index.php復制到容器內的/var/www目錄下 # 會自動解壓tar包 ADD index.php /var/www/ # 用copy而不用add,因為ADD指令會自動解壓tar文件 COPY redis.tgz /home/redis.tgz # 設置工作目錄,exec進入容器就直接進入到這個目錄中 WORKDIR /path/to/workdir WORKDIR /var/www USER , 設置用戶ID USER nginx # 設置volume, 聲明一個數據卷, 可用于掛載, []里面是路徑 # 出于可移植和分享的考慮,用于-v主機目錄:容器目錄這種方法不能夠直接在DockerFile中實現 # 可自行創建軟鏈接實現特定目錄掛載 VULUME <#dir> VOLUME ['/data'] EXPOSE , 暴露哪些端口 EXPOSE 80 443 ENTRYPOINT ["executable", "param1","param2"]執行命令 ENTRYPOINT ["/usr/sbin/nginx"] # 一般只用cmd就可以了 CMD ["param1","param2"] CMD ["start"] > docker創建、啟動container時執行的命令: 如果設置了ENTRYPOINT,則CMD將作為參數 如果沒有設置ENTRYPOINT, 則直接命令參數傳入 比如要有使容器為“掛起”狀態,否則容器運行不起,如果沒有命令使用,或者使用命令報錯,可以先用“/bin/bash” 或者 “sh” >[info] - 盡量將一些常用不變的指令放到前面 > - CMD和ENTRYPOINT盡量使用json數組方式 **通過Dockerfile構建image** # 構建 docker build -t allovince/php-helloworld:v1 . # 運行并綁定端口8080 docker run -d -p 8080:8080 allovince/php-helloworld ## Dockerfile示例 #使用的基礎鏡像 FROM centos #作者信息 MAINTAINER by caiwen (xiaogang.zhou@qq.com) WORKDIR /usr/local/src #安裝wget RUN yum install -y wget #下載并解壓源碼包 RUN wget http://nginx.org/download/nginx-1.8.0.tar.gz RUN tar -zxvf nginx-1.8.0.tar.gz WORKDIR nginx-1.8.0 #編譯安裝nginx RUN yum install -y gcc make pcre-devel zlib-devel RUN ./configure --prefix=/usr/local/nginx --with-pcre RUN make RUN make install #修改Nginx配置文件,以非daemon方式啟動 RUN echo "daemon off;">>/usr/local/nginx/conf/nginx.conf #開放22、80、443端口 EXPOSE 22 EXPOSE 80 EXPOSE 443 #設置生成容器時需要執行的腳本 CMD ["/usr/local/nginx/sbin/nginx","start"] 構建鏡像 docker build -t nginx:v1 . ## 注意Dockerfile中的CD命令坑 - [RUN 中 cd 切換路徑失敗 的原因、解決](https://blog.csdn.net/jiangyu1013/article/details/82255353) > 每一個?`RUN`?都會啟動一個容器、執行命令、然后提交存儲層文件變更。所以CD只能在當前“Run”中有效。 ## 參考鏈接 * [dockerfile關鍵字筆記](https://www.jianshu.com/p/6bc1585552c9)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看