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

                docker 官網 <https://docs.docker.com> docker 在線體驗 http://labs.play-with-docker.com docker 官方案例 https://docs.docker.com/samples/ ![](https://img.kancloud.cn/8c/c5/8cc5a294a11d6b8166e52c7b24b69240_1037x1037.png) # Docker定義 > Docker時Docker.Lnc公司開源的一個基于LXC技術之上搭建的Container容器引擎,[源代碼](https://github.com/docker)托管在Github上,基于Go語言并遵從Apache2.0協議開源。 Docker屬于Linux容器的一種封裝,提供簡單易用的容器使用接口。 Docker將應用程序與該程序的依賴,打包在一個文件里面,用擔心環境問題。運行這個文件,就會生成一個虛擬容器。程序在這個虛擬容器里運行,就像在物理機上運行一樣。 # 虛擬機 > 虛擬機(virtual machine)就是帶環境安裝的一種解決方案。它可以在一種操作系統里面運行另一種操作系統,比如在Windows系統里面運行Linux系統。應用程序對此毫無感知,因為虛擬機看上去跟真絲系統一模一樣,而對于底層系統來說,虛擬機就是一個普通文件,不要了就刪掉,對其它部分毫無影響。 **虛擬機的缺點:** * 資源占用多:**虛擬機**會**獨占**一部分內存和硬盤空間。它運行的時候,其他程序就不能使用這些資源了。 * 冗余步驟多:虛擬機是完整的操作系統。 * 啟動慢:啟動操作系統需要多久,啟動虛擬機就需要多久。 # Linux容器 > 由于虛擬機存在以上缺點,Linux發展出了另一種虛擬化技術:Linux容器(Linux Containers,縮寫為LXC)。 Linux容器不是模擬一個完整的操作系統,而是對**進程**進行隔離(Linux容器是一個由 Linux Namespace、Linux Cgroups 和rootfs 三種技術構建出來的進程的隔離環境)。或者說,在正常進程的外面套了一個保護層。對于容器里面的進程來說,它接觸到的各種資源都是虛擬的,從而實現與底層系統的隔離。 **Linux容器優勢** * 啟動快:容器里面的應用,直接就是底層系統的一個進程,而不是虛擬機內部的進程。所以,啟動容器相當于啟動本機的一個進程,而不是啟動一個操作系統,速度就快很多。 * 資源占用少:容器只占用需要的資源,不占用那些沒有用到的資源;虛擬機由于是完整的操作系統,不可避免要占用所以資源。另外,多個**容器**可以**共享資源**,**虛擬機**都是**獨享資源**。 * 體積小:容器只要包含用到的組件即可,而虛擬機是整個操作系統的打包,所以容器文件比虛擬機文件要小很多。 # 容器與虛擬機對比 > 一個容器中運行原生Linux和共享主機與其它容器的內核,它運行一個獨立的進程,不占用任何其它可執行文件的內存,使其輕量化。 相比之下,虛擬機(VM)運行一個完整的“客戶”操作系統,通過虛擬機管理程序虛擬訪問主機資源。一般來說,虛擬機提供的環境比大多數應用程序需要的資源多。 ![](https://github.com/taot168/pmdoc/blob/master/doc/image/docker/%E8%99%9A%E6%8B%9F%E6%9C%BA%E4%B8%8E%E5%AE%B9%E5%99%A8%E5%AF%B9%E6%AF%94.png?raw=true) # Docker解決的問題 * 環境管理復雜:從各種OS到各個中間件再到各種App,一款產品能夠成功發布,作為開發者需要關心的東西太多,且難于管理,這個問題在軟件興業中普遍存在并需要直接面對。Docker可以簡化部署多種應用實例工作,比如Web應用、后臺應用、數據庫應用、大數據應用比如Hadoop集群、消息隊列等等都可以打包成一個image部署。 * 云時代的到來:AWS的成功,引到開發者將應用轉移到云上,解決來硬件管理的問題,然而軟件配置和管理相關的問題依然存在。Docker的出現正好能幫助軟件開發著開闊思路,嘗試新的軟件管理的方法解決這個問題。 * 虛擬化手段的變化:云時代采用標配硬件來降低成本,采用虛擬化手段來滿足用戶按需分配的資源需求以及保證可用性和隔離性。然而無論是KVM還是Xen,在Docker看來都是在浪費資源,又難于管理,更加輕量級大LXC更加靈活和快速: * LXC的便攜性:LXC在Linux 2.6的Kernel里就已經存在了,但是其設計之初并非為云計算考慮,缺少標準化的描述手段和容器的可便攜性,決定其構建出的環境難于分發和標準化管理(相對于KVM之類的image和sanpshot的概念)。Docker就在這個問題上作出了實質性的創新方法。 # Docker作用 Docker的用途: * 提供了一次性的環境:比如,本地測試他人的軟件、持續集成的時候提供單元測試和構建的環境。 * 提供彈性的云服務:因為Docker容器可以隨開隨關,很適合動態擴縮容。 * 組建微服務架構:通過多個容器,一臺機器可以跑多個服務,因此在本機就可以模擬出微服務架構。
                  <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>

                              哎呀哎呀视频在线观看