What Docker?

Docker并不抽象,但是描述起來很抽象。

首先

暫且不說它的底層是如何實現的。只需要知道它比虛擬機先進:

  • 快速交付和部署
  • 高效虛擬化,更高的性能和效率
  • 方便遷徙和擴展
  • 更簡單的管理

這里有個表,或許可以幫你:

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

其次

了解幾個概念就差不多算入門了:

  • 倉庫(Repository)
  • 鏡像(Image)
  • 容器(Container)

倉庫

倉庫是Image的來源。互聯網上有很多倉庫,有國內的、也有國外的,這里我主要說說正統的——Docker Hub,也是默認的,使用的時候或許需要翻個小墻。
在你做好一切準備工作后,只需要docker pull <Image_name>,就可以從Docker Hub上獲取你想要的Image。當然準備工作需要一頓操作,這里不提,可以稍后看看我的另一篇文章

鏡像和容器

我打算把這兩個概念放一塊描述。如果把鏡像當成一個類的話,容器更像是它new出來的一個又一個對象。鏡像可以從倉庫中獲取,容器則是從鏡像中生成。
容器的啟動和暫停操作有:docker run <Image>docker start <Image>docker restart <Image>docker stop <Image>

再次

讓我闡述一下我對docker容器本質的理解。
Docker引擎之上可以運行很多鏡像從而形成一個的容器,鏡像包括操作系統、安裝的軟件,但形成的容器本質上還是基于linux內核的。于是,你可以通過連接容器(docker attach <container>)運行shell指令。

好吧,我用一個例子說明。你打算安裝一個包含nodejs環境的docker容器,你可以從docker hub上獲取操作系統(docker pull <Image>),比如Ubuntu、CentOS等等,然后創建一個容器(docker run <Image>),在連接到你的容器,也就是操作系統里,就可以進行安裝nodejs的操作了,安裝好nodejs后,你可以通過掛載途徑把你的nodejs項目放入docker容器里,運行shell指令讓項目運行起來,測試無誤后,可以通過遷徙的方法把它部署到其它支持docker環境上。

上面的一系列的操作都可以寫進一個Dockerfile的文本里,生成一個屬于你自己的Image,分享給其他人,別人下載到本機上,可以通過docker build -t <image_name> .指令構建改docker鏡像到本機上。

最后

不知道你四不四弄清楚或者更了解docker了。如果沒,推薦一本書給你;如果弄清楚了,分享我自己收集的一份docker指令集給你,有點粗略,因為還沒有整理好。

docke指令集

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容