<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國際加速解決方案。 廣告
                https://mp.weixin.qq.com/s/5cF3xx5WFozPABsmpXGOyQ # 1、Docker是什么? **Docker 是一個開源的應用容器引擎**,基于 Go 語言 并遵從 Apache2.0 協議開源。 Docker 可以讓開發者打包他們的應用以及依賴包到一個**輕量級、可移植的容器中**,然后發布到任何流行的 Linux 機器上,也可以實現虛擬化。 容器是完全使用沙箱機制,相互之間不會有任何接口(類似 iPhone 的 app),更重要的是容器性能開銷極低。 **docker能干嘛** 一次構建、隨處運行 * ??更快速的應用交付和部署; * ??更便捷的升級和擴縮容; * ??更簡單的系統運維;更高效的計算資源利用 # 2、Docker架構 Docker 包括三個基本概念: * ??鏡像(image):Docker 鏡像(Image)就是一個只讀的模板。鏡像可以用來創建 Docker 容器,**一個鏡像可以創建很多容器**。 * ??容器(container):Docker 利用容器(Container)獨立運行的一個或一組應用。容器是用鏡像創建的運行實例。它可以被啟動、開始、停止、刪除。每個容器都是相互隔離的、保證安全的平臺。可以把容器看做是一個簡易版的 Linux 環境(包括root用戶權限、進程空間、用戶空間和網絡空間等)和運行在其中的應用程序。容器的定義和鏡像幾乎一模一樣,也是一堆層的統一視角,唯一區別在于容器的最上面那一層是可讀可寫的。 * ??倉庫(repository):倉庫(Repository)是集中存放鏡像文件的場所。倉庫(Repository)和倉庫注冊服務器(Registry)是有區別的。倉庫注冊服務器上往往存放著多個倉庫,每個倉庫中又包含了多個鏡像,每個鏡像有不同的標簽(tag)。倉庫分為公開倉庫(Public)和私有倉庫(Private)兩種形式。最大的公開倉庫是 Docker Hub(https://hub.docker.com/),存放了數量龐大的鏡像供用戶下載。國內的公開倉庫包括阿里云 、網易云 等 ![圖片](https://mmbiz.qpic.cn/sz_mmbiz_png/AuPzxadzKEGuvAp8pjuCTQjSsYgibgHjg0wm2JXodkB7A1kAFia1icUDMVqNd13LmSKqmvfRpUmS9bLhxf75Wdw7g/640?wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1 "null") | 概念 | 說明 | | --- | --- | | Docker 鏡像(Images) | Docker 鏡像是用于創建 Docker 容器的模板,比如 Ubuntu 系統。 | | Docker 容器(Container) | 容器是獨立運行的一個或一組應用,是鏡像運行時的實體。 | | Docker Registry | Docker 倉庫用來保存鏡像,可以理解為代碼控制中的代碼倉庫。Docker Hub(https://hub.docker.com) 提供了龐大的鏡像集合供使用。一個 Docker Registry 中可以包含多個倉庫(Repository);每個倉庫可以包含多個標簽(Tag);每個標簽對應一個鏡像。通常,一個倉庫會包含同一個軟件不同版本的鏡像,而標簽就常用于對應該軟件的各個版本。我們可以通過 : 的格式來指定具體是這個軟件哪個版本的鏡像。如果不給出標簽,將以 latest 作為默認標簽。 | | Docker 主機(Host) | 一個物理或者虛擬的機器用于執行 Docker 守護進程和容器。 | | Docker 客戶端(Client) | Docker 客戶端通過命令行或者其他工具使用 Docker SDK (https://docs.docker.com/develop/sdk/) 與 Docker 的守護進程通信 | | Docker Machine | Docker Machine是一個簡化Docker安裝的命令行工具,通過一個簡單的命令行即可在相應的平臺上安裝Docker,比如VirtualBox、 Digital Ocean、Microsoft Azure。 | **提示:** > 需要正確的理解倉儲/鏡像/容器這幾個概念: Docker 本身是一個容器運行載體或稱之為管理引擎。我們把應用程序和配置依賴打包好形成一個可交付的運行環境,這個打包好的運行環境就似乎 image鏡像文件。只有通過這個鏡像文件才能生成 Docker 容器。image 文件可以看作是容器的模板。Docker 根據 image 文件生成容器的實例。同一個 image 文件,可以生成多個同時運行的容器實例。\* image 文件生成的容器實例,本身也是一個文件,稱為鏡像文件。\* 一個容器運行一種服務,當我們需要的時候,就可以通過docker客戶端創建一個對應的運行實例,也就是我們的容器 \* 至于倉儲,就是放了一堆鏡像的地方,我們可以把鏡像發布到倉儲中,需要的時候從倉儲中拉下來就可以了。 # 3、Docker安裝 ## 3.1 安裝 Docker 支持以下的 64 位 CentOS 版本:CentOS 7 CentOS 8 更高版本... 以安裝centos7為例 **使用官方安裝腳本自動安裝,安裝命令如下:** ~~~ curl?-fsSL?https://get.docker.com?|?bash?-s?docker?--mirror?Aliyun ~~~ 查看安裝的docker ~~~ docker?version ~~~ ![圖片](https://mmbiz.qpic.cn/sz_mmbiz_png/AuPzxadzKEGuvAp8pjuCTQjSsYgibgHjgoZFvlQrqIO9rRr2lC1J08KUTyt1w6mjAvyWwCDVrRwe0shdBWhgw6A/640?wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1 "null") ## 3.2 啟動 ~~~ systemctl?start?docker ~~~ # 4、配置阿里云鏡像 ## 4.1 阿里云賬號 登錄自己的阿里云賬號 ![圖片](https://mmbiz.qpic.cn/sz_mmbiz_png/AuPzxadzKEGuvAp8pjuCTQjSsYgibgHjgicia7QvdUXia7v1bkGS6pB55ukMzFPpFldEkjOG17FIzXAZ05cibM9RHYA/640?wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1 "null") ## 4.2 配置鏡像 可以通過修改daemon配置文件`/etc/docker/daemon.json`來使用加速器。如果沒有該文件,創建。使用?`touch daemon.json`創建。 ![圖片](https://mmbiz.qpic.cn/sz_mmbiz_png/AuPzxadzKEGuvAp8pjuCTQjSsYgibgHjg8aMHoibiaQSgPBIk0IAU6tQic0fBoUicFVfQK4reWx7KcaVQiaJibYtjNsJQ/640?wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1 "null") 使配置的文件生效 ~~~ //重新加載sudo?systemctl?daemon-reloadsudo?systemctl?restart?docker ~~~ # 5、Docker常用命令 ## 5.1 鏡像命令 ### 5.1.1列出本地主機上的鏡像 ~~~ docker?images ~~~ ![圖片](https://mmbiz.qpic.cn/sz_mmbiz_png/AuPzxadzKEGuvAp8pjuCTQjSsYgibgHjgCS2TrljF9R3D5aO8Iw7knVAZo7wKtwtBqLGJabdqoYVTEQbkmNc11Q/640?wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1 "null") 參數說明 * ? REPOSITORY:表示鏡像的倉庫源; * ? TAG:鏡像的標簽; * ? IMAGE ID:鏡像ID; * ? CREATED:鏡像創建時間; * ? SIZE:鏡像大小; 提示:同一倉庫源可以有多個 TAG,代表這個倉庫源的不同個版本,我們使用 REPOSITORY:TAG 來定義不同的鏡像。如果你不指定一個鏡像的版本標簽,例如你只使用 ubuntu,docker 將默認使用 ubuntu:latest 鏡像 * * * ### 5.1.2查詢某個鏡像 ~~~ docker?search?某個XXX鏡像名字 ~~~ 例如:查詢redis ![圖片](https://mmbiz.qpic.cn/sz_mmbiz_png/AuPzxadzKEGuvAp8pjuCTQjSsYgibgHjgmUnvDfrskrMnWibbddOZfCtEibvQzAWvjormoS9cp5GuoUQvhEwn1urw/640?wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1 "null") * * * ### 5.1.3下載某個鏡像 ~~~ docker?pull?某個XXX鏡像名字 ~~~ 例如下載redis、默認下載最新版本 ~~~ //默認下載最新的redisdocker?pull?redis//下載指定的redis版本docker?pull?redis:4.0.1 ~~~ ![圖片](https://mmbiz.qpic.cn/sz_mmbiz_png/AuPzxadzKEGuvAp8pjuCTQjSsYgibgHjg6Knkk7bddyHib1WeAyljtVibkO84Rvxiap2ubQMnAYKNhn2VSIx2wdicpA/640?wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1 "null") * * * ### 5.1.4刪除某個下載的鏡像 ~~~ docker?rmi?某個XXX鏡像名字ID ~~~ 例如刪除 redis鏡像 ~~~ docker?rmi?redis ~~~ ![圖片](https://mmbiz.qpic.cn/sz_mmbiz_png/AuPzxadzKEGuvAp8pjuCTQjSsYgibgHjgePq5GrkZbn1AAXT5AoMUcIzUibBG8WSYUALBQGl8xAj8YgiaxwIiaKIzw/640?wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1 "null") ## 5.2 容器命令 ### 5.2.1 新建并且啟動容器 **新建并且啟動一個容器、前提是由對應的鏡像。一個鏡像可以創建多個容器。** ~~~ docker?run?[OPTIONS]?IMAGE?[COMMAND]?[ARG...] ~~~ > OPTIONS說明(常用):有些是一個減號,有些是兩個減號 --name="容器新名字": 為容器指定一個名稱;-d: 后臺運行容器,并返回容器ID,也即啟動守護式容器;-i:以交互模式運行容器,通常與 -t 同時使用;-t:為容器重新分配一個偽輸入終端,通常與 -i 同時使用;-P: 隨機端口映射;-p: 指定端口映射,有以下四種格式 ip:hostPort:containerPort ip::containerPort hostPort:containerPort containerPort 例如以centos鏡像創建一個centostest005的容器,在大部分的場景下,我們希望 docker 的服務是在后臺運行的,我們可以過 -d 指定容器的運行模式。 ~~~ docker?run?-itd?--name?centostest005?centos?/bin/bash ~~~ ![圖片](https://mmbiz.qpic.cn/sz_mmbiz_png/AuPzxadzKEGuvAp8pjuCTQjSsYgibgHjgk6icm1Rv10PMhTpKgSl6nXZBD6CeickzWRLYicnnk4f6ibpTBzJeGia4ePA/640?wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1 "null") **列出當前所有正在運行的容器** ~~~ docker?ps ~~~ ![圖片](https://mmbiz.qpic.cn/sz_mmbiz_png/AuPzxadzKEGuvAp8pjuCTQjSsYgibgHjgvibfwAbhxsZVRAHXNDgS0s1umuKIaoRicaiajvibFiaf2gEcO3VHRkOsSlQ/640?wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1 "null") 在以centos鏡像創建一個centostest006 容器,同時查看運行的容器 ![圖片](https://mmbiz.qpic.cn/sz_mmbiz_png/AuPzxadzKEGuvAp8pjuCTQjSsYgibgHjgzwSoPuiczqGcC7icDCP21VaRbrZuOt75SR2uxvuicfXDvFUCSpIK4PKWw/640?wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1 "null") ### 5.2.2 停止容器 ~~~ docker?stop?容器ID或者容器名 ~~~ 這里的容器ID可以通過docker ps 查看 ![圖片](https://mmbiz.qpic.cn/sz_mmbiz_png/AuPzxadzKEGuvAp8pjuCTQjSsYgibgHjgrRzNajsWPSZGZnGLfVIVlUtXgYxWpw2ltGQuk1oAv5EWeN1yo102TQ/640?wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1 "null") ### 5.2.3 刪除停止容器 ~~~ docker?rm?容器ID ~~~ ![圖片](https://mmbiz.qpic.cn/sz_mmbiz_png/AuPzxadzKEGuvAp8pjuCTQjSsYgibgHjgu4O52wXtRCtAnqZbSHT2zJQCXnj78qNicIiapZwia2ibynrDcnyPjuy0Gw/640?wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1 "null") ### 5.2.4 啟動容器 前提是已經根據鏡像創建過容器,只不過創建的容器暫時未啟動 ~~~ docker?start?容器ID或者容器名 ~~~ ![圖片](https://mmbiz.qpic.cn/sz_mmbiz_png/AuPzxadzKEGuvAp8pjuCTQjSsYgibgHjgFXFj0PyVeHiccUW2BMibSAaVjxcGKdaZ87cUGGZ9R2lYF2tzLkxicarjQ/640?wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1 "null") ### 5.3.5 進入已運行的容器 **方式一:**?exec 是在容器中打開新的終端,并且可以啟動新的進程,因為是新終端,用exit退出,不會導致容器的停止。 ~~~ docker?exec?-it?容器ID?/bin/bash ~~~ ![圖片](https://mmbiz.qpic.cn/sz_mmbiz_png/AuPzxadzKEGuvAp8pjuCTQjSsYgibgHjgFV7neCMk3PGS0xLyicK4ibibkPo1IiaW6rvUwoHUEeNQLNRPm4avfyqRqQ/640?wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1 "null") **方式二** ~~~ ?docker?attach?容器ID ~~~ attach 直接進入容器啟動命令的終端,不會啟動新的進程。如果進入前臺交互式啟動容器,,**用exit退出,會導致容器的停止**。**用ctrl+p+q,不會導致容器停止**。如果進入后臺守護式啟動容器,不僅無法進行交互,并且ctrl+c會導致守護式進程停止。 ![圖片](https://mmbiz.qpic.cn/sz_mmbiz_png/AuPzxadzKEGuvAp8pjuCTQjSsYgibgHjgGtaDiauTgmmUu7KBqI90zSZNRfMpshqVsU1Kq6XtQHS44YCibNyl4ngQ/640?wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1 "null") > 提示:工作中我們一般使用 docker run -d image:tag /bin/bash啟動容器,再通過docker exec -it 容器ID /bin/bash,最為安全可靠。 ### 5.2.6 退出容器的方法 1. 1\. exit:run進去容器,exit退出,容器停止 2. 2\. ctrl+p+q:run進去容器,ctrl+p+q退出,容器不停止 ![圖片](https://mmbiz.qpic.cn/sz_mmbiz_png/AuPzxadzKEGuvAp8pjuCTQjSsYgibgHjg9ciaZYcCHX7nlhg3IjrBQwCUzGjfCnpia5D0jFUsphB9EM9yXHUZiaNicg/640?wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1 "null") **測試 ctrl+p+q** ![圖片](https://mmbiz.qpic.cn/sz_mmbiz_png/AuPzxadzKEGuvAp8pjuCTQjSsYgibgHjgWLFE6B5IwGS6CFn0hiaDYOTribUG0GKrcI9rEGpBCH17A64zDq4NS32w/640?wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1 "null") **測試exit** ![圖片](https://mmbiz.qpic.cn/sz_mmbiz_png/AuPzxadzKEGuvAp8pjuCTQjSsYgibgHjgduBOnwZdzkJLmhC2zaf8KQctzCvribcNGuGFMicLKiaI7orNnVSAXBiajw/640?wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1 "null")
                  <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>

                              哎呀哎呀视频在线观看