當前位置:
首頁 > 科技 > 從搬家到容器技術 Docker 應用場景解析

從搬家到容器技術 Docker 應用場景解析

作者 | channingbreeze

責編 | 仲培藝

小史是一個非科班的程序員,雖然學的是電子專業,但是通過自己的努力成功通過了面試,現在要開始迎接新生活了。

生活現場

話說小史已經接受了 A 廠的 Offer,並在公司附近租好了房子,準備搬家過去住了。

家裡的東西真是多呀,小史的很多傢具都是組裝起來的,現在都已經拆散放到呂老師的車上了。

就這樣,呂老師開車帶著小史一起去了公司附近的新住址。

開了一個多小時,終於到了新住址。一進房間,小史就忙著把心愛的電腦桌拼起來。

但是電腦桌拆起來快,裝起來可不好裝,幾十個組件,一百多個螺絲釘,小史裝了一下午,最後還發現少了幾個螺絲釘。

【晚飯】

晚上,小史和呂老師一起吃飯。

【呂老師前傳】

呂老師以前還是程序員的時候,在 B 廠上班,有一次一個新項目要發布上線。結果測試環境跑得好好的,生產環境死活跑不起來。

【Docker 有啥好】

小史:Docker 我用過,不過當時是因為視頻教程里用了 Docker 部署的環境,所以我也就跟著做了,其實反而覺得更麻煩了,它到底哪裡好呢?

呂老師:這方面 Docker 做了很多事情,比如提供了基礎鏡像的方式,Docker 官方的鏡像倉庫里有很多鏡像,可以直接拉下來用,然後新的鏡像可以以它們為基礎,在上面 commit 新的東西。

呂老師:同時,Docker 使用了鏡像分層的技術,新的 commit 會產生新的層,可以復用一部分老的層。這樣一來製作新鏡像的速度還是挺快的。

小史:我明白你的意思,這樣確實製作鏡像的時候可以加快速度,但是假如我要把整個環境放到另外一個機器部署,還是要拷貝整個大的鏡像過去吧?

【Dockerfile】

呂老師:你說的對,電腦桌不拆,直接放我車上放不下,那麼能不能這樣,我們拆的時候,就把哪個螺絲在哪裡這些細節記錄好,到時候裝的時候只要按照記錄順序安裝就好。

呂老師:你看,就這個簡單的文件。第一行它告訴你這個鏡像基於 Ubuntu 基礎鏡像;第二行告訴你這個鏡像的維護者的信息;第三行的 RUN 就是要執行的 Shell 命令,比如這裡,是在 Ubuntu 的基礎鏡像上安裝一些額外的東西;第四行是鏡像啟動之後執行的初始命令。

【Docker 最佳實踐】

呂老師:其實在網路好的情況下,下載一個鏡像一般來說比重新打一個鏡像更快,所以最終部署都是基於鏡像去部署,不會重新打鏡像了。

【Docker 關鍵概念】

呂老師:你說的沒錯,其實鏡像有點像代碼,容器有點像進程。代碼是存放在硬碟上的東西,而把代碼運行起來,就會形成一個進程,進程才是跑起來的程序。

小史:對,你這個比喻真是貼切,鏡像和容器也是一樣,鏡像是存在硬碟上的東西,鏡像運行起來,就形成一個容器,容器才是真正跑起來的程序。只不過在 Docker 中,我們可以進入容器做一些操作,然後再把容器中的改動提交形成一個新的鏡像。

小史:如果說鏡像是代碼的話,鏡像倉庫就有點像 GitHub 了,我們寫好的代碼會提交到GitHub上進行保存和管理,方便在其他地方也能下載代碼。鏡像倉庫也是類似的,鏡像製作好就放到鏡像倉庫,方便其他人直接用鏡像部署。

總結

【筆記】

聊天結束後,小史悄悄在手機中記錄下了這次的筆記。

1. 容器技術 Docker 的思考方式是,將環境一起打包鏡像,避免部署時的環境問題。

2. Dockerfile 記錄鏡像的製作步驟

3. 鏡像、容器、倉庫的概念可以類比代碼、進程、GitHub.

【飯後】

吃完晚飯,小史和呂老師走在大街上,望著天上的星空。

作者:channingbreeze,國內某互聯網公司全棧開發。

聲明:本文為作者投稿,版權歸對方所有。

熱 文推 薦


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 CSDN 的精彩文章:

科學家之歿,竟是區塊鏈之過?
歷經外企、創業公司、大廠的程序員告訴你:第一份工作有多重要!

TAG:CSDN |