国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

為什么需要Docker?

RdouTyping / 2121人閱讀

摘要:一為什么需要官方介紹中文版是世界領先的軟件容器平臺。其實這篇文章主要是講為什么我們需要在學習一項技術之前,必須要知道這項技術是用來干嘛的,的一些概念和命令我還沒介紹留到下一篇啦。

前言
只有光頭才能變強。
文本已收錄至我的GitHub倉庫,歡迎Star:https://github.com/ZhongFuCheng3y/3y

估計大家也可能聽過Docker這項技術(在論壇上、招聘技能上、交流群上等等),要是不了解Docker,都不好意思在網上沖浪的時候吹牛逼了。

所以這幾天學了一下Docker,總結了Docker入門的相關知識,分享給大家(好讓我們一起吹牛逼)。

I need a doctor,call me a doctor. I need a doctor, doctor, to bring me back to life .
一、為什么需要Docker

官方介紹(中文版):http://www.docker-cn.com/what-docker#/developers

Docker 是世界領先的軟件容器平臺。
開發人員利用 Docker 可以消除協作編碼時“在我的機器上可正常工作”的問題。
運維人員利用 Docker 可以在隔離容器中并行運行和管理應用,獲得更好的計算密度。
企業利用 Docker 可以構建敏捷的軟件交付管道,以更快的速度、更高的安全性和可靠的信譽為 Linux 和 Windows Server 應用發布新功能。
1.1環境(切換/配置)麻煩

一般我們寫程序的,能接觸到好幾個環境

自己寫代碼的環境叫做開發環境。

給測試去跑的環境叫做測試環境。

測試完可以對外使用的叫做生產環境。

其實我們在學習編程中,很多時間都浪費在“環境”上:

如果我現在重裝了系統,我想要跑我的war/jar包,我得去安裝一下JDK、Tomcat、MySQL等配置各種的環境變量才能跑起來。

開開心心地跟著博主給出的步驟去寫Demo,但總是有Bug。(這里我將版本/依賴也歸納在環境的范疇里邊)。

好不容易在測試環境下跑起來了,在生產環境就各種出錯!

跟著教學視頻做分布式/集群的項目,跑一堆的虛擬機,每個虛擬機都要安裝對應的環境。

所以就有個笑話《千萬不要跟程序員說,你的代碼有bug》:

他的第一反應是你的環境有問題,第二就是你是傻逼不會用吧。

你要跟他這么說:“這個程序運行的怎么運行的跟預期不一樣,是我操作有問題嗎?”。

這貨就會第一反應“我擦,這是不是出bug了?”

1.2應用之間需要隔離

比如我寫了兩個應用(網站),這兩個應用部署在同一臺服務器上,那可能會出現什么問題?

如果一個應用出現了問題,導致CPU占100%。那另一個應用也會受到關聯,跟著一起涼涼了。

這兩個應用是完全不同技術棧的應用,比如一個PHP,一個.NET。這兩個應用各種的依賴軟件都安裝在同一個服務器上,可能就會造成各種沖突/無法兼容,這可能調試就非常麻煩了。

二、Docker是如何解決上述的問題的 2.1解決環境(切換/配置)

不知道大家有沒有裝過系統,比如說裝Linux虛擬機,重裝Windows系統,都是需要鏡像的。

有了這個鏡像,我們就可以運行這個鏡像,來進行安裝系統的操作(此處省略N個下一步),于是我們的系統就裝好了。一般來說,我們去官方渠道下載的鏡像,都是純凈的。比如去官方下載Windows鏡像,裝完后之后桌面只有一個回收站。

但有過了解裝系統的同學可能就會知道,有的鏡像裝完可能還有360這些軟件,但系統的的確確是變了。簡單來說,就是這些鏡像添加了其他的東西(比如360軟件、騰訊、千千靜聽等等軟件)。

Docker也是這種思路,可以將我們的想要的環境構建(打包)成一個鏡像,然后我們可以推送(發布)到網上去。想要用這個環
境的時候,在網上拉取一份就好了。

有了Docker,我們在搭環境的時候,跟以前的方式就不一樣了。

之前:在開發環境構建出了一個war包,想跑到Linux下運行。我們得先在Linux下載好Java、Tomcat、MySQL,配置好對應的環境變量,將war包丟到Tomcat的webapps文件夾下,才能跑起來。

現在:在Linux下直接拉取一份鏡像(各種環境都配好了),將鏡像運行起來,把war包丟進去就好了。

將Docker的鏡像運行起來就是一兩秒的事情而已,十分方便的。

2.2解決應用之間隔離

說到這里,就得提出一個大家可能不認識的概念:LXC(Linux Containers)--->Linux容器。

2.2.1Linux容器
在Linux內核中,提供了cgroups功能,來達成資源的區隔化。它同時也提供了名稱空間(namespace)區隔化的功能,使應用程序看到的操作系統環境被區隔成獨立區間,包括進程樹,網絡,用戶id,以及掛載的文件系統。

簡單來說就是:LXC是一個為Linux內核包含特征的用戶接口。通過強大的API和簡單的工具,它可以讓Linux用戶輕松的創建和托管系統或者應用程序容器。

2.2.2回到Docker

我們在翻看Docker的官方文檔的時候,也很容易看見cgroup和namespace這兩個名詞:

來源維基百科:

Early versions of Docker used LXC as the container execution driver, though LXC was made optional in v0.9 and support was dropped in Docker v1.10.

lxc是早期版本docker的一個基礎組件,docker 主要用到了它對 Cgroup 和 Namespace 兩個內核特性的控制。新的Docker版本已經移除了對LXC的support。

2.2.3Docker在Windows和Mac

上面說了,Docker底層用的Linux的cgroup和namespace這兩項技術來實現應用隔離,那Windows和Mac用戶能用Docker嗎?

之前,Windows和Mac使用Docker實際上就是跑了一層Linux虛擬機。

比如在Windows下安裝的是Docker Toolbox,它需要Oracle Virtual Box來跑Docker

現在,Windows和Mac都已經原生支持Docker了。但需要一些安裝的條件,詳情可以查看官網

比如Windows:Docker for Windows requires 64bit Windows 10 Pro and Microsoft Hyper-V

參考資料:

Windows 原生 Docker 正式商用

http://blog.daocloud.io/windows-docker/

三、虛擬機和Docker
說到應用隔離和鏡像,我就想起了虛擬機。今年下半年(此處省略.....),文體兩開花(此處省略.....),要是我寫文章寫得不好,我是需要向XX謝罪的。

估計大家都用過虛擬機,虛擬機也能實現對應用的隔離,安裝特定的鏡像也能跑出我們想要的環境。虛擬機已經發展了很久了,為什么我們還需要Docker呢?

這部分內容在官網也有相關的介紹:

http://www.docker-cn.com/what-container#/virtual_machines

一句話總結:Docker容器比虛擬機輕量多了!

最后

Docker可以干嘛?

將一整套環境打包封裝成鏡像,無需重復配置環境,解決環境帶來的種種問題。

Docker容器間是進程隔離的,誰也不會影響誰。

其實這篇文章主要是講為什么我們需要Docker(在學習一項技術之前,必須要知道這項技術是用來干嘛的),Docker的一些概念和命令我還沒介紹(留到下一篇啦)。如果還沒看過【生活現場】從搬家到容器技術docker應用場景解析,可以先去看看~

我在學習Docker的時候也找到了不少的資源,想要獲取Docker入門資源的同學可在公眾號下回復“Docker”

樂于分享和輸出干貨的Java技術公眾號:Java3y。關注即可領取海量的視頻資源!

覺得我的文章寫得不錯,不妨點一下

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/72902.html

相關文章

  • 什么要用docker

    摘要:那容器和鏡像有什么關系網上說是類和對象的關系,沒錯,但是這樣的比喻沒什么實際卵用。針對這個問題,項目組決定把開發環境遷移到中,在測試環境中測試無誤后,把鏡像打包發布到正式環境中,解決了環境不同導致的問題。 本文旨在用最通俗的語言講述最枯燥的基本知識 最近Docker突然火得不得了,到處都是談論Docker的聲音,相信大家和小編一樣的心情,看這個東西有點高大上,但嘗試去閱讀Docker文...

    Bryan 評論0 收藏0
  • 什么需要Docker

    摘要:一為什么需要官方介紹中文版是世界領先的軟件容器平臺。其實這篇文章主要是講為什么我們需要在學習一項技術之前,必須要知道這項技術是用來干嘛的,的一些概念和命令我還沒介紹留到下一篇啦。 前言 只有光頭才能變強。 文本已收錄至我的GitHub倉庫,歡迎Star:https://github.com/ZhongFuCheng3y/3y 估計大家也可能聽過Docker這項技術(在論壇上、招聘技能...

    Backache 評論0 收藏0
  • Docker簡介、常用命令與實踐(一)

    摘要:獲取阿里云加速器地址進入登錄阿里云進入后臺配置加速器點擊后就會重啟并應用配置的鏡像地址了檢查加速器是否生效配置加速器之后,如果拉取鏡像仍然十分緩慢,請手動檢查加速器配置是否生效,在命令行執行,如果從結果中看到了如下內容,說明配置成功。 一、為什么要使用Docker以及與虛擬機的區別? 1.1 為什么要使用Docker Docker的思想來自于集裝箱。集裝箱解決了什么問題?在一艘大船上,...

    Ocean 評論0 收藏0
  • 寫給docker新手的文章

    摘要:為什么要用對開發者來說啟動速度快傳統虛擬機需要數分鐘的啟動時間秒秒鐘啟動。開發者只需要代碼到版本管理即可,接下來的自動測試,自動構建,自動部署都交給吧更輕松的擴展。 1. 前言 相見恨晚用來形容我對docker的熱愛再合適不過了,自從用了docker,開發環境也不安裝了,系統想換就換了,部署更是一鍵部署,再也不用擔心在這臺機器上跑的好好的,其它機器有問題了... 寫這篇文章,也是為do...

    svtter 評論0 收藏0
  • 【 全干貨 】5 分鐘帶你看懂 Docker

    摘要:本文從定義,作用,技術架構,安裝和使用等全方位帶你看懂。最后,于開發者而言提供了一種開發環境的管理辦法,與測試人員而言保證了環境的同步,于運維人員提供了可移植的標準化部署流程。顯示上圖內容就表明安裝完成。 作者丨唐文廣:騰訊工程師,負責無線研發部地圖測試。 導語:Docker,近兩年才流行起來的超輕量級虛擬機,它可以讓你輕松完成持續集成、自動交付、自動部署,并且實現開發環境、測試環...

    lavnFan 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<