Docker有什麼用?

2021-08-20 21:26:45 字數 2740 閱讀 3699

docker目前只能在linux下執行

對開發者而言,每天會催生出的各式各樣的新技術都需要嘗試,然而開發者卻不太可能為他們一一搭建好環境並進行測試。時間非常寶貴,正是得益於 docker,讓我們有可能在一條或者幾條命令內就搭建完環境。docker 有乙個傻瓜化的獲取軟體的方法,docker 後台會自動獲得環境映象並且執行環境。

並不僅僅是新技術環境搭建用得到 docker。如果你想快速在你的筆記本上執行乙個 mysql 資料庫,或者乙個 redis 訊息佇列,那麼使用 docker 便可以非常容易地做到。例如

docker 只需要一條命令便可以執行 mysql 資料庫:

docker run -d -p 3306:3306 tutum/mysql。

譯者注:雖然使用命令也能非常快地安裝 mysql 資料庫,但是當用到最新的技術或者非常複雜的技術時,使用 docker 便會是個非常好的選擇,例如 :

事件普通使用者

docker使用者

安裝gitlab

一天一條命令

現在我經常需要在週末用自己開發的成果對客戶活著別人做一兩個演示。搭建演示環境的過程非常麻煩。現在我發現 docker 已經成為我演示這些工具的最合理的方式。

對於客戶來說,我可以直接將 docker 映象提供給他們,而不必去做任何環境配置的工作,工作的效果也會和在他們演示中所看到的一模一樣,同時不必擔心他們的環境配置會導致我們的產品無法執行。

避免「我機器上可以執行」(而別人的機器不可以)

另乙個 docker 可以發揮用處的地方是培訓班。除了 docker 容器的隔離性之外,更能體會到 docker 優勢的地方在於環境搭建。培訓班的新手每個人都要在環境搭建上花費很多時間,但是如果在這裡應用到 docker 的話,那麼我們只需要把標準的執行環境映象分發下去,然後就可以開始上課了。使用 docker 和使用虛擬機器一樣簡單,但是 docker 要更方便、更輕量級。同時,我們也可以告訴學員:「在培訓的同時,我們還將學到當下最流行的技術——docker」,這種雙贏的結局,何樂而不為呢。

虛擬機器的粒度是「虛擬出的機器」,而 docker 的粒度則是「被限制的應用」,相比較而言 docker 的記憶體占用更少,更加輕量級。

對我來說這是 docker 的乙個優勢:因為我經常在自己電腦中執行多個 docker 應用,使用 docker 比使用虛擬機器更加簡單,方便,粒度更細,也能持續地跟蹤容器狀態。

如果你一直在關注科技新聞的話,那麼你應該聽說過「微服務(microservices)」的概念。docker 可以很好地和微服務結合起來。從概念上來說,乙個微服務便是乙個提供一整套應用程式的部分功能,docker 便可以在開發、測試和部署過程中一直充當微服務的容器。甚至生產環境也可以在 docker 中部署微服務。

在雲服務提供商之間移植

大多數的雲主機提供商已經全面支援 docker。對於開發人員來說,這表示你可以很方便地切換雲服務提供商,當然也可以很方便地將你本地的開發環境移動到雲主機上,不需要本地上配置一次執行環境、在雲主機上還配置一次執行環境。全面部署 docker (docker here and docker there) 作為標準執行環境可以極大地減輕應用上線時的工作量和產生 bug。

api 是應用之間的粘合劑,乙個合格開發者肯定使用過別人提供的 rest api,或者自己開發過 rest api。需要指出的是,無論是客戶端還是 api 提供端,在開發之前都需要先定義一組公共的 api 介面,寫成文件,然後才能進行編碼。如果服務端和客戶端是共同開發的話,那麼服務端通常會先實現能返回固定字串的 api 介面,在以後的開發中再慢慢去實現 api 的功能。

雖然有人會認為在這裡 docker 被濫用了,完全可以用 sample.json 這種檔案去實現虛擬 api,但是下面有個例項可以更好地解決前後端分離開發時的 api 問題。

為了更好地解釋我的意思,給大家提供乙個例項:json server,乙個用於提供 json 資料的 rest api。使用過這個容器的人就會知道,既然有這麼好用的 docker json server,我們沒有理由不用 docker。

譯者注:

執行示例的 json server,同時使用示例中提供的 json 檔案,只需執行一條命令便可以建立乙個服務端的 api 應用。

使用 curl 即可獲取示例檔案中的 posts 段,這樣在後端沒有開發完 api 的時候,前端一樣可以進行協同開發。

這點應該算不上是用例,但是我還是來寫一下。docker 正在快速發展,工具也在不斷更新,沒有人能預見到未來 docker 會是什麼樣子的。你在複雜的系統中 docker 使用的越多,越是可能會發現技術上的空白和未來技術發展的方向。現在還處在 docker 的發展期,任何你使用 docker 建立的工具都有可能成為社群關注的熱點。這是 docker 的機會,也是成就你自己的機會。

還有兩個技巧可以分享給你們。在學習 docker 的過程中因為有了這兩個的幫助,我才得意不斷地提公升自己。

如果你不太確定的話,可以去 docker hub 上搜有一下有沒有自己用得到的映象。大部分情況下你所需要的映象在 docker hub 上都已經有人構建了。

二:多參考 iaas **商的新聞,雖然我們不能像在他們會議室裡那樣完全了解他們的公司動態,但是仍然可以從新聞中可以了解到 docker 最新的發展方向和技術趨勢。可以肯定的是,容器化技術是未來的熱點,我們不僅可以在本機執行 docker,不僅僅在一家雲服務提供商的主機上執行 docker,未來所有的雲服務提供商都會支援 docker。

docker 前景很明確,採用 docker 只會讓開發變得更方便。

dev null有什麼用

把 dev null 看作 黑洞 它非常等價於乙個只寫檔案.所有寫入它的內容都會永遠丟失.而嘗試從它那兒讀取內容則什麼也讀不到.然而,dev null 對命令列和指令碼都非常的有用.禁止 標準輸出 cat filename dev null 禁止 標準錯誤 rm badname 2 dev null...

技術有什麼用?

技術有什麼用?收藏 最近在cto俱樂部的乙個討論分享,關於技術和創新的作用 技術向底層延伸,應該是科技,技術向上層延伸,應該是應用,如果單純把技術看作工具,編碼,實現或一種生存的手段,那就太狹隘了。二戰期間,美國和蘇聯都因為戰爭的因素,發展了高精尖技術,二戰結束,美國把可以商業化的科研產品交給了企業...

LDAP有什麼用?

對ldap最直白的解釋 1 認證的煩惱 小明的公司有很多it系統,比如郵箱 svn jenkins jira,vpn,wifi.等等 新人入職時需要在每個系統中申請一遍賬號,每個系統對使用者名稱和密碼的要求還不一樣,實在是煩人。這還不算,按照公司的策略,這些密碼每隔三個月還得更改一次,每次都是一次大...