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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

Docker学习(一)-----Docker简介与安装

發布時間:2023/11/28 生活经验 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Docker学习(一)-----Docker简介与安装 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一.Docker介紹

1.1什么是docker

Docker是一個開源的應用容器引擎,基于Go語言并遵從Apache2.0協議開源

Docker可以讓開發者打包他們的應用以及依賴包到一個輕量級,可移植性的容器中,然后發布到任何流行的Liunx機器上,也可以實現虛擬化

容器是完全使用沙箱機制,相互之間不會有任何接口(類似iphone的app),更重要的是容器性能開銷極低

1.2為什么用docker

1.簡化程序
Docker讓開發者可以打包他們的應用以及依賴包到一個可移植的容器中,然后發布到任何流行的Liunx機器上,便可以實現虛擬化。Docker改變了虛擬化的方式,使開發者可以直接將自己的成果放入Docker進行管理。方便快捷已經是Docker的最大優勢,過去需要用數天乃至數周的任務,在Docker容器的處理下,只需要數秒就能完成

2.避免選擇恐懼癥
如果你有選擇恐懼癥,還是資深患者。Docker幫你打包你的糾結!比如Docker鏡像;Docker鏡像中包含了運行環境和配置,所以Docker可以簡化部署多種應用實例工作。比如Web應用,后臺應用,數據庫應用,大數據應用比如Hadoop集群,消息隊列等等都可以打包成一個鏡像部署

3.節省開支
一方面,云計算時代到來,使開發者不必為了追求效果而配置高額的硬件,Docker改變了高性能必然高價格的思維定勢。Docker與云的結合,讓云空間得到更充分的利用。不僅解決了硬件管理的問題,也改變了虛擬化的方式

4.持續交付和部署
對開發和運維(DevOps)人員來說,最希望的就是一次創建或配置,可以在任意地方正常運行。使用Docker可以通過定制應用鏡像來實現持續集成,持續交付,部署。開發人員可以通過Dockerfile來進行鏡像構建,并結合持續集成(Continuous Integration)系統進行集成測試,而運維人員則可以直接在生產環境中快速部署該鏡像,甚至結合持續部署系統進行自動部署,而且使用Dockerfile使鏡像構建透明化,不僅僅開發團隊可以理解應用運行環境,也方便運維團隊理解應用運行所需條件,幫助更好的生產環境中部署該鏡像

5.更輕松的遷移
由于Docker確保了執行環境的一致性,使得應用的遷移更加容易,Docker可以在很多平臺上運行,無論是物理機,虛擬機,公有云,私有云,甚至是筆記本,其運行結果是一致的,因此用戶可以很輕易的將在一個平臺上運行的應用,遷移到另一個平臺上,而不用擔心運行環境的變化導致應用無法正常運行的情況

1.3Docker的應用場景

Web應用的自動化打包和發布
自動化測試和持續集成,發布
在服務型環境中部署和調整數據庫或其他的后臺應用
從頭編譯或者擴展現有的OpenShift或Cloud Foundry 平臺來搭建自己的PaaS環境

云計算+大數據時代
開發一套應用程序代碼,服務器(Liunx),安裝開發環境工具包(JDK/Tomcat/MySql/Nginx/RabbitMQ/Redis/Solr)
IaaS:(Infrastructure-as-a-Service)基礎設施即服務
阿里云,百度云,騰訊云,華為云
IaaS:服務器:開發一套應用程序代碼,安裝開發環境工具包

PaaS:(Platform as a Service)平臺即服務
PaaS:服務器+安裝開發環境工具包:只需要開發一套應用程序代碼

SaaS:(Software-as-a-Service)軟件即服務
SaaS:服務器+安裝開發環境工具包+代碼 —>只需要花錢購買服務即可

1.4Docker和虛擬機總結

1.實現原理技術不同
虛擬機是用來進行硬件資源劃分的完美解決方案,利用的是硬件虛擬化技術,如此VT-x,AMD-V會通過一個hypervisor層來實現對資源的徹底隔離

2.使用資源方面不同·
Docker容器與主機共享操作系統內核,不同的容器之間可以共享部分系統資源,因此更加輕量級,消耗的資源更少

3.虛擬機會獨占分配給自己的資源,不存在資源共享,各個虛擬機之間近乎完全隔離,更加重量級,也會消耗更多的資源

4.應用場景不同
若需要資源的完全隔離并且不考慮資源的消耗可以使用虛擬機
若是想隔離進程并且需要大量進行實例,應該選擇Docker容器

項目容器虛擬機
啟動秒級分鐘級
硬盤使用一般為MB一般為GB
性能接近原生弱于
系統支持量單機支持上千個容器一般幾十個

1.5Docker總結

  • Docker是世界領先的軟件容器平臺
  • Docker使用Google公司推出的Go語言進行開發實現,基于Liunx內核的cgroup,namespace,以及AUFS類的UnionFS等技術,對進程進行封裝隔離,屬于操作系統層面的虛擬化技術,由于隔離的進程獨立于宿主和其他的隔離的進程,因此也稱為容器,Docker終于最初實現是基于LXC
  • Docker能夠自動執行重復性任務,例如 搭建和配置開發環境,從而解放了開發人員以便他們專注在真正重要的事情上:構建杰出的軟件
  • 用戶可以方便地創建和使用容器,把自己的應用放入容器。容器還可以進行版本管理,復制,分享,修改,就像管理普通的代碼一樣
  • Docker的鏡像提供了除內核外完整的運行時環境,確保了應用運行環境一致性,從而不會再出現"這段代碼在我機器上沒問題啊"這類問題–一致的運行環境
  • 可以做到秒級,甚至毫秒級的啟動時間,大大的節約了開發,測試,部署的時間—更快速的啟動時間
  • 避免公用的服務器,資源會容易受到其他用戶的影響–隔離性
  • 善于處理集中爆發的服務器使用壓力–彈性伸縮,快速擴展
  • 可以很輕易的將在一個平臺上運行的應用,遷移到另一個平臺上,而不用擔心運行環境的變化導致應用無法正常運行的情況----遷移方便
  • 使用Docker可以通過定制應用鏡像來實現持續集成,持續交付,部署----持續交付和部署

二.Docker架構

簡介
Docker使用客戶端-服務器(C/S)架構模式,使用遠程API來管理和創建Docker容器

Docker容器通過Docker鏡像來創建

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

2.1Docker基本概念

Docker包括三個基本概念

  • 鏡像(Image)
  • 容器(Container)
  • 倉庫(Repository)
    理解了這三個概念,就理解了Docker的整個生命周期

2.2Docker引擎

Docker使用客戶端 服務器(C/S)架構模式,使用遠程API來管理和創建Docker容器。
Docker容器通過Docker鏡像來創建,詳情可以自行百度

2.3Docker架構

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

Docker面向對象
容器對象
鏡像
Docker 鏡像(Images)Docker鏡像是用于創建Docker容器的模板
Docker 容器(Container)容器是獨立運行的一個或一組應用
Docker 客戶端 (Client)Docker客戶端通過命令行或者其他工具使用Docker API 與Docker的守護進程通信
Docker 主機(Host)一個物理或者虛擬的機器用于執行Docker守護進程和容器
Docker倉庫(Registry)Docker倉庫用來保存鏡像,可以理解為代碼控制中的代碼倉庫,Docker Hub提供了龐大的鏡像集合供使用
Docker MachineDocker Machine是一個簡化Docker安裝的命令行工具,通過一個簡單的命令行即可在相應的平臺上安裝Docker,比如VirtualBox,Digital Ocean,Microsoft Azure

2.3Docker鏡像

是一個存入鏡像的倉庫,通常被部署在互聯網服務器或者云端
Docker Hub(https://hub.docker.com)提供了龐大的鏡像集合供使用

Docker鏡像是一個特殊的文件系統,除了提供容器運行時所需的程序,庫,資源,配置等文件外,還包含了一些為運行時準備的一些配置參數(如匿名卷,環境變量,用戶等)鏡像不包含任何動態數據,其內容在構建之后也不會被改變

2.3.1分層存儲

因為鏡像包含操作系統完整的root文件系統,其體積往往是龐大的,因此在Docker設計時,就充分利用Union FS的技術,將其設計為分層存儲的架構,所以嚴格來說,鏡像并非是像一個ISO那樣的打包文件,鏡像只是一個虛擬的概念,其實際體現并非由一個文件組成,而是由一組文件系統組成,或者說,由多層文件系統聯合組成

鏡像構建時,會一層層構建,前一層是后一層的基礎,每一層構建完就不會再發生改變,后一層上的任何改變只發生在自己這一層,比如,刪除前一層文件的操作,實際不是真的刪除前一層的文件,而是僅在當前層標記為該文件已刪除。在最終容器運行的時候,雖然不會看到這個文件,但是實際上該文件會一直跟隨鏡像,因此,在構建鏡像的時候,需要額外小心,每一層盡量只包含該層需要添加的東西,任何額外的東西應該在該層構建結束前清理掉

分層存儲的特征還使得鏡像的復用,定制變的更為容易。甚至可以用之前構建好的鏡像作為基礎層,然后進一步添加新的層,以定制自己所需的內容,侯建新的鏡像

jdk
liunx
docker

2.4Docker容器

鏡像和容器的關系,就像是面向對象程序設計中的類和實例一樣,鏡像是靜態的定義,容器是鏡像運行時的實體,容器可以被創建,啟動,停止,刪除,暫停等

容器的實質是進程,但與直接在宿主執行的進程不同,容器進程運行于屬于自己的獨立的命令空間,因此容器可以擁有自己的root文件系統,自己的網絡配置,自己的進程空間,甚至自己的用戶ID空間。容器內的進程是運行在一個隔離的環境里,使用起來,就好像是在一個獨立于宿主的系統下操作一樣,這種特性使得容器瘋轉給的應用比直接在宿主運行更加安全,也因為這種隔離的特性,很多人初學Docker時常常會混淆容器和虛擬機

前面講過鏡像使用的是分層存儲,容器也是如此,每一個容器運行時,是以鏡像為基礎層,在其上創建一個當前容器的存儲層,我們可以稱這個為容器運行時讀寫而準備的存儲層為容器存儲層

容器存儲層的生存周期和容器一樣,容器消亡時,容器存儲層也隨之消亡,因此,任何保存于容器存儲層的信息都會隨容器刪除而丟失

按照Docker最佳實踐的要求,容器不應該向其存儲層內寫入任何數據,容器存儲層要保持無狀態化。所有的文件寫入操作,都應該使用數據卷,或者綁定宿主目錄,在這些位置的讀寫會跳過容器存儲層,直接對宿主(或網絡存儲)發生讀寫,其性能和穩定性更高

數據卷的生存周期獨立于容器,容器消亡,數據卷不會消亡,因此,使用數據卷后,容器刪除或者重新運行之后,數據卻不會丟失

三.Docker倉庫

3.1公有Docker Registry

Docker Registry公開服務是開放給用戶使用,允許用戶管理鏡像的Registry服務,一般這類公開服務允許用戶免費上傳,下載公開的鏡像,并可能提供收費供用戶管理私有鏡像

最常使用的Registry公開服務是官方的Docker Hub,這也是默認的Registry
并擁有大量的高質量的官方鏡像,除此以外,還有CoreOSQuay.io,
CoreOS相關的鏡像存儲在這里,Google的Google Container Registry,Kubernetes的鏡像使用的就是這個服務

由于某些原因,在國內訪問這些服務可能會比較慢,國內的一些云服務商提供了針對Docker Hub的鏡像服務,這些鏡像服務被稱為加速器,常見的有阿里云加速器,DaoCloud加速器等,使用加速器會直接從國內的地址下載Docker Hub的鏡像,比直接從Docker Hub下載速度會提高很多

國內也有一些云服務商提供類似于Docker Hub的公開服務,比如時速云鏡像倉庫,網易云鏡像服務,DaoCloud,鏡像市場,阿里云鏡像庫

3.2私有Docker Registry

除了使用公開服務外,用戶還可以在本地搭建私有Docker Registry,Docker官方提供了Docker Registry鏡像,可以直接使用

四.安裝Docker

我這里安裝的是docker版本是20.10.11,我是在CentOS7里安裝的
官方提供的安裝教程:
httpsL//docs.docker.com/install/liunx/docker-ce/centos/#install-using-the-repository

4.1 CentOS安裝要求

Docker支持以下的CentOS版本:

  • CentOS 7(64-bit)
  • CentOS 6.5(64-bit)或更高的版本

4.2 安裝

Centos7https://docs.docker.com/engine/install/centos/
目前,CentOS僅發行版本中的內核支持Docker。Docker運行在CentOS7上,要求系統為64位,系統內核版本為3.10以上。Docker運行在CentOS-6.5或更高的版本的CentOS上,要求系統為64位,系統內核版本為2.6.32-431或者更高版本

4.2.1校驗版本

命令: 校驗Liunx內核版本 (3.10以上版本)

uname -r

以2017年3月開始docker在原來的基礎上分為兩個分支版本:Docker CE和Docker EE. Docker CE即社區免費版,Docker EE即企業版,強調安全,但需付費使用 本文介紹Docker CE的安裝使用

4.2.2移除舊的版本

 sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine

如果yum報告未安裝這些軟件包,則可以

4.2.3安裝一些必要的系統工具

安裝所需的軟件包。yum-utils提供了yum-config-manager應用,并device-mapper-persistent-datalvm2由需要devicemapper存儲驅動程序

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

4.2.4添加軟件源信息

源1(官方推薦)(國外鏡像慢)

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

源2(阿里云源)(個人推薦使用)

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

4.2.5更新yum緩存

sudo yum makecache fast

4.2.6安裝Docker-CE

sudo yum -y install docker-ce

4.2.7啟動Docker后臺服務

sudo systemctl start docker

4.2.8重啟Docker服務

sudo systemctl restart docker

4.2.9安裝成功后可通過查看

docker version

總結

以上是生活随笔為你收集整理的Docker学习(一)-----Docker简介与安装的全部內容,希望文章能夠幫你解決所遇到的問題。

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