學習docker已經有一段時間了,一直沒有靜下心來好好總結一下。
最近用docker搭了一整套Gitlab的持續集成環境。(會在下一篇中詳細的講解具體步驟,敬請期待)
感覺是時候寫點東西和大家一起分享了,如果寫的不好還請幫忙指正。
先從docker的一些官方網站說起。
1. www.docker.com
這個是docker的官網,經常參考的是Install&Docs,學會這里面的所有內容你就是docker使用的大師(...)了。
2.http://index.docker.io/
介紹這個網站要稍微多說一點,docker的目的是把環境(image)打包分享,所以需要一個存這些環境(image)的地方,方便大家去查找和分享,這個網站就是干這個的了。稱為public registry(有經驗的同學可能注意到了,既然有public,那肯定有PRivate了。是的,我們也可以搭建自己的private registry,方便局域網內的人進行image共享,搭建方法會在后續的章節中介紹)。
就像App Store/安卓市場一樣,說不定以后真的會變成和App Store/安卓市場一樣的使用方式呢。(這句只代表本人想法,不同意請忽略)
3.https://github.com/
大家可能奇怪為什么會和github有關系呢,因為docker的環境是可以通過build文件(Dockerfile)來自動編譯出來的,docker中提到的automated build可以根據在github中存放的build文件來自動編譯出image,然后push到public registry中。
4. linux基礎知識
因為docker是在linux container基礎上發展起來的,所以對于linux的了解還是少不了的。
這個可以在使用docker過程中慢慢學習,畢竟涉及的命令太多了。
5. Git(optional)
這個是可選的,因為docker的很多命令和git差不多,如果之前用過git,那docker命令學起來就方便多了。
接下來簡單介紹下為什么用docker呢?
拿一個簡單的例子來說明一下,作為一個開發者,我想要搭建一個MySQL的環境,一般的步驟是:download -> install -> configure -> use.
尤其是configure,如果沒有經驗,還需要在網上查找資料,各種各樣的配置信息都會被你搜出來,浪費時間和精力。
如果另一個開發者,也需要一個mysql的環境,又需要這么來一邊。
第一個問題,為什么不能有現成的呢?
答案是:有,使用VM, 搭建好后,把VM Template進行共享。
但是VM會引出其它的問題:
1. 占用空間大,動不動就幾G, 里面有太多和運行mysql無用的程序和進程,和一整套的底層OS.
2.一旦以后底層OS換了,原來的MySQL配置還好不好用,就需要進行測試了。
所以需求來了,不能有這么一套既輕量級,又統一的mysql的環境嗎?
可以把download -> install -> configure -> use 過程變成 use 嗎?
答案是:docker,用docker registry提供的mysql image。pull下來后可以直接使用。
只要保證從開發,到最終上線都用相同的mysql image,就不會有兼容性的問題。
上面只是一個簡單的例子,想了解詳情,請查看https://docs.docker.com/#why-docker
一個統一的mysql image可以代替網上各種各樣的mysql配置信息,對于開發者來說方便快捷。
docker是一個面向開發者使用的軟件。
更詳細的信息可以參考上面提供的鏈接。
新聞熱點
疑難解答