日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Docker_基础知识

發布時間:2024/9/30 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Docker_基础知识 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言:

一直刷題也沒啥意思,學點其他的知識,docker技術也很有意思,而且之后給學弟學妹們搭建web賽題的時候,用docker搭建也比較方便,比較安全。

理論和實操同樣重要,所以先了解一些基礎知識!

0x00:為什么會出現docker

比如開發團隊編寫和運行代碼都沒有問題,但通過源碼打包發送給運維去部署時會出現因環境不同而造成的一些命令無法執行,從而使得環境無法部署,還有另一個原因也是因為通常在服務器上部署的環境都是相同的,如果一臺一臺去裝的話,環境配置會特別麻煩,換一臺機器,就要重新來一次,費力費時,而且運維會崩潰,所以docker技術就出現了,開發團隊在編寫好和運行好之后直接利用docker打包好,運維只需在機器上部署已經打包好的docker環境即可,不用再擔心因環境問題而運行不了,而且在部署相同軟件的時候也可以把原始環境一模一樣的復制過來,不用重復工作,提高了工作效率。

0x01:Docker理念

Docker通過對應用組件的封裝、分發、部署、運行等生命周期的管理,使用戶的APP或WEB應用等及其運行環境能夠做到“一次封裝,到處運行”

0x02:docker是什么

解決了運行環境和配置問題軟件容器,方便做持續集成并有助于整體發布的容器虛擬化技術

0x03:docker能干什么

Docker和傳統虛擬化的不同之處:

  • 傳統虛擬機技術是虛擬出一套硬件后,在其上運行一個完整操作系統,在該系統上再運行所需應用進程;
  • 而容器內的應用進程直接運行于宿主的內核,容器沒有自己的內核,而且也沒有進行硬件虛擬。因此容器要比傳統虛擬機更為輕便。
  • 每個容器之間相互隔離,每個容器都有自己的文件系統,容器之間進程不會相互影響,能區分計算資源。
  • 0x04:Docker的三要素

    • 鏡像(image)
    • 容器 (container)
    • 倉庫(repository)

    Docker鏡像就是一個只讀的模板。鏡像可以用來創建Docker容器,一個鏡像可以創建很多容器。

    容器與鏡像的關系類似于面向對象編程中的對象與類

    Docker面向對象
    容器對象
    鏡像

    Docker利用容器獨立運行的一個或一組應用。容器是用鏡像創建的運行實例。可以被啟動、開始、停止、刪除。每個容器都是相互隔離的、保證安全的平臺。
    可以把容器看做是一個簡易版的Linux環境(包括root用戶權限、進程空間、用戶空間和網絡空間等)和運行在其中的應用程序。容器的定義和鏡像幾乎一模一樣。也是一堆層的統一視角,唯一區別在于容器的最上面那一層是可讀可寫的。

    倉庫是集中存放鏡像文件的場所。
    倉庫和倉庫注冊服務器是有區別的。倉庫注冊服務器上往往存放著多個倉庫,每個倉庫中又包含了多個鏡像,每個鏡像有不同的標簽(tag)
    倉庫分為公開倉庫和私有倉庫兩種形式。

    0x05:知識小結

    需要正確的理解倉儲/鏡像/容器這幾個概念:

    Docker本身是一個容器運行載體或稱之為管理引擎。我們把應用程序和配置依賴打包好形成一一個可交付的運行環境,這個打包好的運行環境就是image鏡像文件。只有通過這個鏡像文件才能生成Docker容器。image文件可以看作是容器的模板。Docker根據image文件生成容器的實例。同一個image文件,可以生成多個同時運行的容器實例。

    • image文件生成的容器實例,本身也是一個文件,稱為鏡像文件。
    • 一個容器運行一種服務,當我們需要的時候,就可以通過docker客戶端創建一個對應的運行實例,也就是我們的容器 至于倉儲,就是放了一堆鏡像的地方,我們可以把鏡像發布到倉儲中,需要的時候從倉儲中拉下來就可以了。

    0x06:安裝Docker

    我做練習的機器是Centos7,安裝下面的方法安裝即可

    1、安裝需要的軟件包, yum-util 提供yum-config-manager功能,另外兩個是devicemapper驅動依賴的

    sudo yum install -y yum-utils device-mapper-persistent-data lvm2

    2、設置yum源

    sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

    3、安裝docker
    這里我安裝的是17.12.1.ce

    yum install docker-ce-17.12.1.ce

    4、啟動Docker并加入開機啟動

    systemctl start docker systemctl enable docker

    5、驗證安裝是否成功(有client和service兩部分表示docker安裝啟動都成功了)

    docker version

    0x07:阿里云鏡像加速器配置


    也比較好配置,按照人家給的代碼復制粘貼即可

    0x08:Hello World鏡像

    docker run hello-world


    由于本地沒有hello-world這個鏡像,所以會下載一個hello-world鏡像,并在容器內運行。

    過程如下圖:

    0x09:Docker運行底層原理

    Docker是怎么工作的?

    Docker是一個Client-Server結構的系統,Docker守護進程運行在主機上,然后通過Socket連接從客戶端訪問,守護進程從客戶端接受命令并管理運行在主機上的容器。


    為什么Docker比較比vm快?

    • docker有著比虛擬機更少的抽象層。由于docker不需要Hypervisor實現硬件資源虛擬化,運行在docker容器上的程序直接使用的都是實際物理機的硬件資源。因此在CPU、內存利用率上docker將會在效率上有明顯優勢。
    • docker利用的是宿主機的內核,而不需要Guest OS。因此,當新建一個 容器時,docker不需要和虛擬機-樣 重新加載一個操作系統內核。所以避免引尋、加載操作系統內核返個比較費時費資源的過程,當新建–個虛擬機時,虛擬機軟件需要加載GuestOS,返個新建過程是分鐘級別的。而docker由于直接利用宿主機的操作系統,則省略了返個過程,因此新建一個docker容器只需要幾秒鐘。


    總結:
    這次就先學習到這里,下次學習Docker相關命令。

    總結

    以上是生活随笔為你收集整理的Docker_基础知识的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。