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

                ![](https://cdn.zimug.com/wx-zimug.png) [TOC] 一般學習一項技術,會先用一個最簡單的例子或最典型的例子來向大家講解入門內容,所以此文為大家介紹使用docker安裝nginx容器服務。**從基礎使用的角度來講,此文幾乎涵蓋了docker最核心的內容:鏡像拉取、容器運行、端口映射、文件映射**,雖然基礎但很重要,所以建議認真學習。 ## 一、拉取鏡像 docker pull命令用于拉取應用鏡像,`docker pull nginx`命令用于拉取最新版本的nginx鏡像。下文為拉取鏡像過程的響應結果: ~~~ # docker pull nginx Using default tag: latest latest: Pulling from library/nginx c229119241af: Pull complete 2215908dc0a2: Pull complete 08c3cb2073f1: Pull complete 18f38162c0ce: Pull complete 10e2168f148a: Pull complete c4ffe9532b5f: Pull complete Digest: sha256:2275af0f20d71b293916f1958f8497f987b8d8fd8113df54635f2a5915002bf1 Status: Downloaded newer image for nginx:latest docker.io/library/nginx:latest ~~~ 從上文我們可以看出nginx鏡像是從`docker.io`這個網址拉取下來的。 使用`docker images`命令可以查看當前操作系統中下載了哪些鏡像文件。 ~~~ # docker images REPOSITORY TAG IMAGE ID CREATED SIZE nginx latest 12766a6745ee 33 hours ago 142MB hello-world latest feb5d9fea6a5 6 months ago 13.3kB ~~~ * REPOSITORY鏡像倉庫及鏡像名稱,如果不顯示鏡像倉庫,默認就是`docker.io` * TAG鏡像的版本或者是里程碑標簽,latest表示最新版本 * IMAGE ID 鏡像的唯一標識 * CREATED 這個鏡像被創建的時間 * SIZE表示鏡像文件的大小 ## 二、運行鏡像啟動容器 通過`docker run`命令啟動一個容器,容器名稱為nginx-zimug。 ~~~ # docker run -d --name nginx-zimug -p 80:80 nginx 81bb1211144bc0991a789f860458548643c60b5459466c14d0604be9a4ccbfd7 ~~~ * `-d`表示容器在后臺運行 * `--name`為容器起一個名字 * `-p`端口映射,格式為`宿主機端口:容器端口`,上文中含義是將容器中的端口80映射到宿主機的端口80,對外提供訪問服務。 * 最后一個字段為鏡像名稱 瀏覽器HTTP協議訪問宿主機的80端口,如果是80端口可以省略。得到的訪問結果如下,說明我們的nginx服務已經啟動成功了。 ![](http://cdn.zimug.com/d0b199fc90ad86ce5be627c58be7aefc) 通過`docker ps`可以查看正在運行中的容器,如下所示: ~~~ CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 81bb1211144b nginx "/docker-entrypoint.…" 11 minutes ago Up 11 minutes 0.0.0.0:80->80/tcp, :::80->80/tcp nginx-zimug ~~~ ## 三、文件映射 首先明確的是容器中的文件內容是可以被修改的,但是**一旦容器重啟,所有寫入到容器中的,針對數據文件、配置文件的修改都將丟失**。所以為了保存容器的運行狀態,執行結果,我們需要將容器內的一些重要的數據文件、日志文件、配置文件映射到宿主機上。 以nginx為例,nginx有三個重要的文件目錄: ||容器中路徑|宿主機中自定義映射路徑| |---|---|---| |存儲網站網頁的目錄|/usr/share/nginx/html|/root/nginx/html| |日志目錄|/etc/nginx/nginx.conf|/root/nginx/conf/nginx.conf| |nginx配置文件目錄|/var/log/nginx|/root/nginx/logs| **在宿主機中新建文件目錄** ~~~ mkdir -p /root/nginx/logs /root/nginx/html /root/nginx/conf; ~~~ **將容器中的文件copy到宿主機中** 將nginx配置文件copy到宿主機中 ~~~ docker cp nginx-zimug:/etc/nginx/nginx.conf /root/nginx/conf; ~~~ **將一個模擬的html文件放入html目錄** 將下面的文件保存為index.html放入宿主機的`/root/nginx/html`目錄,因為存在映射關系,實際上也是放入了容器的`/usr/share/nginx/html`目錄。 ~~~ <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>使用docker搭建nginx web服務</title> </head> <body> <h1>訪問成功</h1> <p>厲害了!</p> </body> </html> ~~~ ## 四、再次啟動容器服務 `-v`參數表達了宿主機文件與容器中文件的映射關系,格式為`-v 宿主機目錄:容器文件系統目錄`。啟動一個新的容器,容器的名字叫做nginx-prod ~~~ docker run -d -p 80:80 \ --name nginx-prod \ -v /root/nginx/html:/usr/share/nginx/html \ -v /root/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \ -v /root/nginx/logs:/var/log/nginx nginx ~~~ 在啟動新容器之前,將nginx-zimug舊的容器刪掉。如果不刪除舊的容器,新容器的端口與舊容器端口會發生沖突。使用如下命令刪除容器: ~~~ docker stop nginx-zimug; docker rm nginx-zimug; ~~~ 執行上面的`docker run`命令,啟動新的容器。啟動后通過瀏覽器訪問宿主機80端口,響應結果如下證明nginx正常提供web服務了。 ![](http://cdn.zimug.com/bb71cdc2db3e1770bb7c6fba4068b1d3) 同時可以在宿主機上修改nginx配置,也可以查看運行時日志文件。修改結果會影響容器nginx服務的運行,因為宿主機的配置文件與容器內的配置文件存在映射關系。 ![](http://cdn.zimug.com/eff7903c286415516498487747d5d730)
                  <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>

                              哎呀哎呀视频在线观看