70、微服務保姆教程(十三)Docker容器詳細講義

一、關于Docker

1.1為什么要用docker?

隨著開發的項目越來越復雜,軟件越來越多,服務器越來越多,我們在開發和部署的時候會遇到很多問題,比如:

1.不同的應用程序可能會有不同的應用環境,比如Java開發的網站和php開發的網站依賴的軟件就不一樣,如果把他們依賴的軟件都安裝在一個服務器上就要調試很久,而且很麻煩,還會造成一些沖突。比如tomcat和Apache訪問端口沖突。這個時候你就要隔離Java開發的網站和php開發的網站。常規來講,我們可以在服務器上創建不同的虛擬機在不同的虛擬機上放置不同的應用,但是虛擬機開銷比較高。2.你開發軟件的時候用的是Ubuntu,但是運維管理的都是centos,運維在把你的軟件從開發環境轉移到生產環境的時候就會遇到一些Ubuntu轉centos的問題,比如:有個特殊版本的數據庫,只有Ubuntu支持,centos不支持,在轉移的過程當中運維就得想辦法解決這樣的問題。3.我們部署一臺服務器就需要安裝和配置很多環境,在分布式環境中,需要部署很多臺,每臺都完全安裝和部署一次太麻煩。

那么怎么解決呢?我們可以用Docker!

Docker可以把開發環境直接封裝轉移給運維,運維直接部署封裝后的環境就可以,而且docker可以實現虛擬機隔離應用環境的功能,并且開銷比虛擬機小,小就意味著省錢了。

1.2 什么是docker

docker是一個開源的應用容器引擎,開發者可以打包自己的應用到容器里面,然后遷移到其他機器的docker應用中,可以實現快速部署。如果出現的故障,可以通過鏡像,快速恢復服務。

1.3 docker的思想

1.Docker采用集裝箱思想意思是將需要的內容和環境打包成一個個集裝箱,所有的集裝箱都可以上傳到碼頭上,當有人需要某個環境時,就從碼頭上拉取這個集裝箱就可以。碼頭的概念類似Maven倉庫。2.Docker的隔離型docker在運行集裝箱中的內容時,會在linux內核中,單獨的開辟一個單元,不會影響到其它程序。3.Docker的標準化docker提供了一系列的命令,幫助我們去創建,拉取集裝箱。docker還提供了Rest的Api,衍生出了很多的圖形化界面,Rancher。  

在這里插入圖片描述

1.4 底層原理

docker是利用Linux內核虛擬機化技術(LXC),提供輕量級的虛擬化,以便隔離進程和資源。LXC不是硬件的虛擬化,而是Linux內核的級別的虛擬機化,相對于傳統的虛擬機,節省了很多硬件資源。NameSpaceLXC是利用內核namespace技術,進行進程隔離。其中pid, net, ipc, mnt, uts 等namespace將container的進程, 網絡, 消息, 文件系統和hostname 隔離開。Control GroupLXC利用的宿主機共享的資源,雖然用namespace進行隔離,但是資源使用沒有收到限制,這里就需要用到Control Group技術,對資源使用進行限制,設定優先級,資源控制等。

1.5 版本支持

在CentOS6.8是可以支持docker,但是有些特性無法使用,因此至少使用3.8的內核版本,建議是使用3.10版本以上。國內生產環境很多都是使用CentOS,所以一般使用CentOS7即可。
當然如果是Ubuntu/Debian/Deepin系列的發行版本也是支持的。

二、 Docker安裝和配置

2.1 環境準備

操作系統:CentOS

軟件源:阿里云鏡像(在阿里云鏡像站上面可以找到docker-ce的軟件源,使用國內的源速度比較快)

2.2 安裝docker

1、安裝依賴

docker依賴于系統的一些必要的工具,可以提前安裝。

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

在這里插入圖片描述

2、添加軟件源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

在這里插入圖片描述

3、安裝docker-ce
yum clean all #yum 會把下載的軟件包和header存儲在cache中而不自動刪除。如果覺得占用磁盤空間,可以使用yum clean指令清除緩存。yum makecache fast  #這個命令是將軟件包信息提前在本地緩存一份,用來提高搜索安裝軟件的速度yum -y install docker-ce

在這里插入圖片描述

在這里插入圖片描述

4、啟動服務

通過systemctl啟動服務

systemctl start docker

在這里插入圖片描述

5、查看安裝版本

這樣子就安裝成功了,啟動服務以后可以使用docker version查看一下當前的版本。

docker version

在這里插入圖片描述

6、設置開機自動啟動
 systemctl enable docker

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/83386.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/83386.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/83386.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Python 中的 typing.ClassVar 詳解

一、ClassVar 的定義和基本用途 ClassVar 是 typing 模塊中提供的一種特殊類型,用于在類型注解中標記類變量(靜態變量)。根據官方文檔,使用 ClassVar[…] 注釋的屬性表示該屬性只在類層面使用,不應在實例上賦值 例如&…

架構與UML4+1視圖

簡單對比分析 架構41視圖 架構41視圖是由Philippe Kruchten提出的,用于描述軟件系統的架構。它包括以下五個視圖: 邏輯視圖:描述系統的功能需求,展示系統的靜態結構,通常使用類圖、對象圖等。開發視圖:…

Redis 八股

目錄 數據類型 字符串: List: HASH: Set: Zset: BitMap:(這個及以下是后來新增的數據結構) HyperLogLog: GEO: Stream: 主要數據結構 …

基于協同過濾的文學推薦系統設計【源碼+文檔+部署】

基于協同過濾的文學推薦系統設計 摘要 隨著信息技術的飛速發展和文學閱讀需求的日益多樣化,構建一個高效、精準的文學推薦系統變得尤為重要。本文采用Spring Boot框架,結合協同過濾算法,設計并實現了一個基于用戶借閱行為和社交論壇互動的文學…

鴻蒙電腦:五年鑄劍開新篇,國產操作系統新引擎

出品 | 何璽 排版 | 葉媛 前不久,璽哥發布的《鴻蒙電腦,刺向壟斷的利刃,將重塑全球PC市場格局》發布后,獲得了讀者朋友的積極反饋,不少都期望鴻蒙電腦早日發布。 如今,它真來了! 5月8日&…

EWOMAIL

1、錯誤 Problem: problem with installed package selinux-policy-targeted-3.14.3-41.el8.noarch package fail2ban-server-1.0.2-3.el8.noarch requires (fail2ban-selinux if selinux-policy-targeted), but none of the providers can be installed - package fail2ban-…

qt5.14.2 opencv調用攝像頭顯示在label

ui界面添加一個Qlabel名字是默認的label 還有一個button名字是pushButton mainwindow.h #ifndef MAINWINDOW_H #define MAINWINDOW_H#include <QMainWindow> #include <opencv2/opencv.hpp> // 添加OpenCV頭文件 #include <QTimer> // 添加定…

Spring三級緩存的作用與原理詳解

在Spring框架中&#xff0c;Bean的創建過程涉及到了三級緩存機制。這個機制主要是為了提高單例模式下bean實例化和依賴注入的效率。本文將深入探討Spring中的三級緩存&#xff0c;以及其在bean生命周期中的重要作用。 首先&#xff0c;讓我們理解什么是三級緩存。Spring中的三…

IoTDB集群的一鍵啟停功能詳解

IoTDB&#xff08;Internet of Things Database&#xff09;作為一種專為物聯網設計的高性能時序數據庫&#xff0c;支持單機與分布式等多種部署模式。隨著節點數量的增加&#xff0c;手動管理集群的啟動與停止過程變得繁瑣。為了提升部署效率&#xff0c;IoTDB 提供了一鍵啟停…

Oracle學習日記--Oracle中使用單個inert語句實現插入多行記錄

目錄 前言&#xff1a; 問題現象&#xff1a; 問題分析&#xff1a; 解決方法&#xff1a; 1、insert into ... union all句式 2、insert all into ...select 1 from dual句式 總結&#xff1a; 前言&#xff1a; 最近項目中使用到了Oracle數據庫&#xff0c;由于Oracle數…

LabVIEW 程序運行時內存不足報錯原因

在 LabVIEW 程序開發與運行過程中&#xff0c;內存不足報錯并退出是常見且棘手的問題。這不僅影響程序穩定性&#xff0c;還可能導致數據丟失與系統崩潰。以下從程序設計、硬件資源、系統環境等多維度深入剖析其成因&#xff0c;幫助開發者準確定位并解決問題。 ? 一、程序設…

【GAN網絡入門系列】一,手寫字MINST圖片生成

&#x1f368; 本文為&#x1f517;365天深度學習訓練營 中的學習記錄博客&#x1f356; 原作者&#xff1a;K同學啊 博主簡介&#xff1a;努力學習的22級本科生一枚 &#x1f31f;?&#xff1b;探索AI算法&#xff0c;C&#xff0c;go語言的世界&#xff1b;在迷茫中尋找光芒…

Baklib加速企業AI數據智理轉型

Baklib智理AI數據資產 在AI技術深度滲透業務場景的背景下&#xff0c;Baklib通過構建企業級知識中臺架構&#xff0c;重塑了數據資產的治理范式。該平臺采用智能分類引擎與語義分析模型&#xff0c;將分散在郵件、文檔、數據庫中的非結構化數據轉化為標準化的知識單元&#xf…

如何在Windows右鍵新建菜單中添加自定義項,將notepad添加到新建菜單

一、簡介 Windows 右鍵新建菜單的核心管理機制隱藏在注冊表的 HKEY_CLASSES_ROOT 根鍵中。這里存在兩種關鍵注冊表項&#xff1a;文件擴展名項和文件類型項&#xff0c;它們共同構成了新建菜單的完整控制體系。 以常見的.txt文件為例&#xff0c;系統通過以下機制實現新建菜單…

中大型水閘安全監測系統建設實施方案

一、方案背景 隨著科技的不斷進步&#xff0c;水利工程的數字化轉型已經成為提升城市水資源管理效率和增強防洪能力的關鍵。今天&#xff0c;我們將引導您深入了解我國大中型水閘安全監測管理系統的構建方案&#xff0c;探討如何運用先進技術確保國家水安全&#xff0c;提升水利…

Gartner《如何有效融合Data Fabric 與Data Mesh數據戰略》學習心得

在當今數字化時代,數據已成為企業最為重要的戰略資產之一。企業對于高效的數據管理架構的需求日益迫切,以確保能夠從海量數據中提取有價值的信息,支持業務決策和創新。近年來,數據編織(Data Fabric)和數據網格(Data Mesh)成為了數據管理領域的兩個熱門概念,在行業內引…

matlab建立整車模型,求汽車的平順性

在MATLAB中建立整車模型評估汽車平順性&#xff0c;通常采用多自由度振動模型。以下是基于四分之一車模型的詳細步驟和代碼示例&#xff0c;可擴展至整車模型。 1. 四分之一車模型&#xff08;簡化版&#xff09; 模型描述 自由度&#xff1a;2個&#xff08;車身垂直位移 z2…

探究電阻分壓的帶負載能力

我們經常使用兩個電阻去分壓來獲得特定的電壓,那么我是兩個大阻值電阻分壓獲得的電壓驅動能力強,還是小阻值電阻分壓得到的電壓驅動能力強呢? 一、電壓相同時,電流的大小 下面是兩個阻值分壓得到的仿真圖 電路分析: VCC都是5V,探針1和探針2測到的電壓都是1.67V; 根據…

牛客網NC22222:超半的數

牛客網NC22222:超半的數 題目描述 輸入輸出格式 輸入格式&#xff1a; 第一行包含一個整數 n (1 ≤ n ≤ 1000)第二行包含 n 個整數 a_i (1 ≤ a_i ≤ 10^9) 輸出格式&#xff1a; 輸出一個整數&#xff0c;表示出現次數超過一半的那個數 解題思路 這道題目有多種解法&a…

開發日常中的抓包工具經驗談:Charles 抓包工具與其它選項對比

開發日常中的抓包工具經驗談&#xff1a;HTTPS調試怎么選&#xff1f; 在移動開發或Web API聯調時&#xff0c;網絡請求常常成為問題定位的第一難題。尤其是面對加密的 HTTPS 請求&#xff0c;傳統瀏覽器調試工具已顯得力不從心。 我們團隊最近在排查一個安卓應用中的支付延遲…