<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>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # 5. 使用 Dockerfile 文件 #### 1. 介紹 上一篇:[理解docker鏡像的層疊結構(四)](https://www.rails365.net/articles/li-jie-docker-jing-xiang-de-ceng-die-jie-gou-si) Dockerfile是一個純文本文件,內容是可讀的,就是把構建鏡像的指令一條條放在這個文件中,然后就可以build出來一個鏡像。 #### 2. 使用 我們來實踐一下。 創建一個最簡單的Dockerfile文件。 ``` $ mkdir mynginx $ cd mynginx $ touch Dockerfile ``` 內容如下: ``` FROM nginx RUN echo '<h1>Hello, Docker!</h1>' > /usr/share/nginx/html/index.html ``` 我們以此Dockerfile文件,來生成了一個鏡像,使用`docker build`命令。 只要 ``` $ docker build . ``` 會顯示這樣的信息: ``` Sending build context to Docker daemon 2.048 kB Step 1/2 : FROM nginx ---> db079554b4d2 Step 2/2 : RUN echo '<h1>Hello, Docker!</h1>' > /usr/share/nginx/html/index.html ---> Running in 64127d3ff089 ---> 6fb1fd56e2dd Removing intermediate container 64127d3ff089 Successfully built 6fb1fd56e2dd ``` build成功之后可以查看一下: ``` $ docker images nginx REPOSITORY TAG IMAGE ID CREATED SIZE <none> <none> 6fb1fd56e2dd 4 seconds ago 182 MB nginx v2 f51e5af097aa 44 minutes ago 182 MB ``` 其中可看出,`REPOSITORY`和`TAG`部分都為none,其實我們build的時候可以給個名稱標識一下。 ``` $ docker build -t nginx:v3 . ``` 現在就有了。 ``` $ docker images nginx REPOSITORY TAG IMAGE ID CREATED SIZE nginx v3 6fb1fd56e2dd 4 minutes ago 182 MB nginx v2 f51e5af097aa 48 minutes ago 182 MB ``` #### 3. 參數解釋 回到之前的Dockerfile文件的內容。 ``` FROM nginx RUN echo '<h1>Hello, Docker!</h1>' > /usr/share/nginx/html/index.html ``` 只有兩個指令,分別是`FROM`和`RUN`。 `FROM`代表的是基礎鏡像,`RUN`表示的是運行的命令。 值得注意的是,每條指令都會創建一層鏡像,不要單獨寫太多的`RUN`語句,而是要串起來。 例如,類似下面的作法是不對的。 ``` FROM ruby:2.2.2 # update RUN apt-get update -qq # RUN apt-get upgrade -qq # RUN apt-get dist-upgrade -qq # RUN apt-get autoremove -qq # for build essential lib RUN apt-get install -y build-essential # for postgres RUN apt-get install -y libpq-dev # for nokogiri RUN apt-get install -y libxml2-dev libxslt1-dev # for a JS runtime RUN apt-get install -y nodejs # for imagemagick RUN apt-get install -y imagemagick # for vim RUN apt-get install -y vim # set gem sources RUN gem sources -r https://rubygems.org/ RUN gem sources -a https://ruby.taobao.org/ ENV APP_HOME /var/www/coomo_store RUN mkdir -p $APP_HOME WORKDIR $APP_HOME ADD Gemfile* $APP_HOME/ RUN bundle install --jobs=4 ADD . $APP_HOME ``` 還有很多命令,會被經常用到,比如`ARG`, `ENV`, `EXPOSE`, `WORKDIR`, `CMD`。 下面來介紹一下。 `ARG`表示的是設置一個參數,在build的時候由外面通過命令行參數的形式傳過來。 比如: ``` $ docker build --build-arg PORT=3000 --build-arg NPM_TOKEN=e43d3f2c-e7b7-4522-bf74-b7d2863eddf7 . ``` 傳了兩個參數分別為`PORT`和`NPM_TOKEN`。 `ENV`是設置環境變量,以后這個變量可以傳到docker容器內部中去。 `EXPOSE`表示暴露的端口號。 `WORKDIR`就是指定工作目錄啦。 `CMD`是容器啟動的命令。 來看一個實例,具體體會一下這些命令。 ``` from node:6.9 ARG PORT ARG NPM_TOKEN ENV PORT ${PORT} ENV NPM_TOKEN ${NPM_TOKEN} EXPOSE ${PORT} ADD . /code WORKDIR /code RUN npm install RUN npm run build CMD npm run docker ``` 下面這個鏈接是官方給的關于Dockerfile的文檔: <https://docs.docker.com/engine/reference/builder/#dockerfile-examples> 完結。 下一篇:[docker的數據卷(六)](https://www.rails365.net/articles/docker-de-shu-ju-juan-liu)
                  <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>

                              哎呀哎呀视频在线观看