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

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                Docker 允許你在容器內運行應用程序, 使用?`docker run`?命令來在容器內運行一個應用程序。 ## Hello world 現在讓我們來試試 ~~~ $ sudo docker run ubuntu:14.04 /bin/echo 'Hello world' Hello world ~~~ 剛才你啟動了你的第一個容器! 那么剛才發生了什么? 我們逐步來分析?`docker run`?命令做了哪些事情。 首先,我們指定了?`docker`?二進制執行文件和我們想要執行的命令?`run`。`docker run`?組合會運行容器。 接下來,我們指定一個鏡像:?`ubuntu 14.04`?。這是我們運行容器的來源。 Docker 稱此為鏡像。在本例中,我們使用一個`Ubuntu 14.04`?操作系統鏡像。 當你指定一個鏡像,Docker 首先會先從你的 Docker 本地主機上查看鏡像是否存在,如果沒有,Docker 就會從鏡像倉庫[Docker Hub](https://hub.docker.com/)?下載公共鏡像。 接下來,我們告訴 Docker 在容器內我們需要運行什么命令: ~~~ /bin/echo 'Hello world' ~~~ 當我們的容器啟動了 Docker 創建的新的 Ubuntu 14.04 環境,并在容器內執行?`/bin/echo`?命令后。我們會在命令行看到如下結果: ~~~ hello world ~~~ 那么,我們創建容器之后會發生什么呢? 當命令狀態狀態處于激活狀態的時候 Docker 容器就會一直運行。這里只要 "hello world" 被輸出,容器就會停止。 ## 一個交互式的容器 讓我們嘗試再次運行?`docker run`,這次我們指定一個新的命令來運行我們的容器。 ~~~ $ sudo docker run -t -i ubuntu:14.04 /bin/bash root@af8bae53bdd3:/# ~~~ 我們繼續指定了?`docker run`?命令,并啟動了?`ubuntu:14.04`?鏡像。但是我們添加了兩個新的標識(參數flags):?`-t`?和?`-i`?。`-t`?表示在新容器內指定一個偽終端或終端,`-i`表示允許我們對容器內的 (`STDIN`) 進行交互。 我們在容器內還指定了一個新的命令:?`/bin/bash`?。這將在容器內啟動?`bash shell` 所以當容器(container)啟動之后,我們會獲取到一個命令提示符: ~~~ root@af8bae53bdd3:/# ~~~ 我們嘗試在容器內運行一些命令: ~~~ root@af8bae53bdd3:/# pwd / root@af8bae53bdd3:/# ls bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var ~~~ 你可以看到我們運行?`pwd`?來顯示當前目錄,這時候顯示的是我們的根目錄。我們還列出了根目錄的文件列表,通過目錄列表我們看出來這是一個典型的 Linux 文件系統。 你可以在容器內隨便的玩耍,你可以使用?`exit`?命令或者使用 CTRL-D 來退出容器。 ~~~ root@af8bae53bdd3:/# exit ~~~ 與我們之前的容器一樣,一旦你的 Bash shell 退出之后,你的容器就停止了。 ### Hello world 守護進程 現在當一個容器運行完一個命令后就會退出,但是這樣看起來有時候并不好。讓我們創建一個容器以進程的方式運行,就像大多數我們運行在 Docker 中的應用程序一樣,這里我們可以使用?`docker run`?命令: ~~~ $ sudo docker run -d ubuntu:14.04 /bin/sh -c "while true; do echo hello world; sleep 1; done" 1e5535038e285177d5214659a068137486f96ee5c2e85a4ac52dc83f2ebe4147 ~~~ 等等,怎么回事?我們的 “hello world” 輸出呢?讓我們看看它是怎么運行的。這個命令看起來應該很熟悉.我們運行`docker run`?,但是我們指定了一個?`-d`?標識。`-d`?標識告訴 docker 在容器內以后臺進程模式運行。 我們也指定了一個相同的鏡像:?`ubuntu:14.04` 最終,我們指定命令行運行: ~~~ /bin/sh -c "while true; do echo hello world; sleep 1; done" ~~~ 這是一個忠實的 hello world 進程:一個腳本會一直輸出 "hello world" 為什么我們看不到的一大堆的 "hello world" ? 而是docker返回的一個很長的字符串: ~~~ 1e5535038e285177d5214659a068137486f96ee5c2e85a4ac52dc83f2ebe4147 ~~~ 這個長的字符串叫做容器ID(container ID)。它對于每一個容器來說都是唯一的,所以我們可以使用它。 > 注意:容器 ID 是有點長并且非常的笨拙,稍后我們會看到一個短點的 ID,某些方面來說它是容器 ID 的簡化版。 我們可以根據容器 ID 查看 "hello world" 進程發生了什么 首先,我們要確保容器正在運行。我們可以使用?`docker ps`?命令來查看。`docker ps`?命令可以查詢 docker 進程的所有容器。 ~~~ $ sudo docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 1e5535038e28 ubuntu:14.04 /bin/sh -c 'while tr 2 minutes ago Up 1 minute insane_babbage ~~~ 這里我們看到了以進程模式運行的容器。`docker ps`?命令會返回一些有用的信息,這里包括一個短的容器 ID:`1e5535038e28`。 我們還可以查看到構建容器時使用的鏡像,?`ubuntu:14.04`,當命令運行之后,容器的狀態隨之改變并且被系統自動分配了名稱?`insane_babbage`。 > 注意:當容器啟動的時候 Docker 會自動給這些容器命名,稍后我們可以看到我們如何給容器指定名稱。 好了,現在我們知道它正在運行。但是我們能要求它做什么呢?做到這,我們需要在我們容器內使用?`docker logs`?命令。讓我們使用容器的名稱來填充?`docker logs`?命令。 ~~~ $ sudo docker logs insane_babbage hello world hello world hello world . . . ~~~ `docker logs`?命令會查看容器內的標準輸出:這個例子里輸出的是我們的命令?`hello world` 太棒了!我們的 docker 進程是工作的,并且我們創建了我們第一個 docker 應用。 現在我們已經可以創建我們自己的容器了,讓我們處理正在運行的進程容器并停止它。我們使用?`docker stop`?命令來停止容器 。 ~~~ $ sudo docker stop insane_babbage insane_babbage ~~~ `docker stop`?命令會通知 Docker 停止正在運行的容器。如果它成功了,它將返回剛剛停止的容器名稱。 讓我們通過?`docker ps`?命令來檢查它是否還工作。 ~~~ $ sudo docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES ~~~ 太好了,我們的容器停止了。
                  <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>

                              哎呀哎呀视频在线观看