Docker學習總結


本文作為總結性文章,不會詳細講解Docker。但會把已學習的、了解的內容按照由易到難的順序串起來,更多的是幫助Docker新手快速的了解Docker,知道目前處在哪個階段,接下來該學些什么,避免碰太多壁。博主水平有限,對於Docker還在不斷學習中,本文如有不對的地方,煩請指出。

Docker是什么

Docker 是一個開源的應用容器引擎(Engine),讓開發者可以打包他們的應用以及依賴包到一個可移植的容器中,然后發布到任何流行的 Linux 機器上,也可以實現虛擬化。

Docker與傳統的虛擬機(如VMware,VirtualBox)很相似,但更具優勢:
1、創建和銷毀秒級完成,啟動速度飛快;
2、體積小,可遷移到任何流行的Linux機器上;
3、占用系統資源極低;
4、可自動化部署、集群管理。

Docker基礎

需要掌握的內容:

1、安裝
2、區分Docker服務端(Server)與客戶端(Client)
3、鏡像
4、容器
5、容器互聯
6、數據卷
7、鏡像倉庫
8、Dockerfile

此階段建議閱讀:
1、《Docker技術入門與實戰》
2、Docker官方文檔 https://docs.docker.com/
3、Docker學習筆記
http://www.cnblogs.com/52fhy/p/5638571.html

說明:官方文檔雖然為英文,但閱讀起來並不是那么難,堅持下去,受益匪淺,寫的是很不錯的。國內很難找到這么全的資料。下面列出官方文檔可仔細閱讀的地方:
1、Linux上安裝:https://docs.docker.com/engine/installation/linux/
2、Hello world in a container: https://docs.docker.com/engine/tutorials/dockerizing/
3、Dockerfile參考:https://docs.docker.com/engine/reference/builder/
4、Dockerizing a Redis service:
https://docs.docker.com/engine/examples/running_redis_service/
5、Docker run 參考:
https://docs.docker.com/engine/reference/run/
6、Docker 命令行參考:
https://docs.docker.com/engine/reference/commandline/
7、Remote API參考:
https://docs.docker.com/engine/reference/api/docker_remote_api/

《Docker技術入門與實戰》作為基礎入門書籍非常合適,感興趣的同學可以購買閱讀。另外極客學院的Docker視頻教程也非常不錯。

鑒於國內的網絡情況,pull鏡像時有必要准備梯子。當然也可以使用國內雲平台提供的服務:

Docker工具

Docker社區很活躍,並涌現出了很多實用的工具。掌握了Docker基礎后,借助工具可以更高效的使用Docker。

docker hub

docker鏡像倉庫。

官方鏡像倉庫:
https://hub.docker.com/explore/

Fig

Fig 主要用來跟 Docker 一起來構建基於 Docker 的復雜應用,Fig 通過一個配置文件來管理多個Docker容器,非常適合組合使用多個容器進行開發的場景。目前Fig已經升級並更名為Compose。

Fig

Compose

Compose是Fig的升級版。Compose向下兼容Fig(學完任意一個均可)。官方文檔寫的很詳細,建議仔細閱讀。

Overview of Docker Compose - Docker
https://docs.docker.com/compose/overview/

重點:
1、安裝Compose:
https://docs.docker.com/compose/install/
2、Compose文件參考:
https://docs.docker.com/compose/compose-file/
3、compose命令行參考:
https://docs.docker.com/compose/reference/overview/

Docker Machine

Machine是一個簡化docker安裝的命令行工具,其可以在不同平台上創建包含docker的實例。

Docker Machine的出現主要是為了解決各平台安裝docker困難的問題。現如今,不同雲平台上安裝docker的流程都不一樣,這樣對於用戶部署docker主機就非常復雜。為了解決這一問題,出現了machine項目 (https://github.com/docker/machine),通過docker-machine可以在不同平台上(例如Azure、 Rackspace、Openstack、Google等雲平台)創建docker主機。

Docker Machine也支持安裝在Windows、Mac平台(實質是借助虛擬機實現的,建議直接安裝Docker Toolbox),這樣,我們既可以使用現有的系統辦公娛樂,還可以使用Docker Machine管理Docker。

通過安裝docker-machine命令行工具,可以創建docker本地主機,也可以一鍵切換到遠程主機。

Docker Toolbox

Toolbox是一個安裝器,目前支持Mac和Windows平台。使用它可以快速地在安裝Docker工具集。類似於大家常說的集成環境。

最新版Docker Toolbox 包含以下內容:

  • docker 1.12.2
  • docker-machine 0.8.2
  • docker-compose 1.8.1
  • Kitematic 0.12.0
  • Boot2Docker ISO 1.12.2
  • VirtualBox 5.1.6

docker/toolbox: The Docker Toolbox
https://github.com/docker/toolbox

Docker Toolbox | Docker
http://www.docker.com/products/docker-toolbox

Docker Registry

Registry是個鏡像,用於構建私有鏡像倉庫。

可視化管理工具

1、DockerUI
DockerUI 基於Docker API,提供等同Docker命令行的大部分功能,支持Container管理,Image管理。

使用:

$ docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock dockerui/dockerui

kevana/ui-for-docker: An unofficial web interface for Docker, formerly known as DockerUI
https://github.com/kevana/ui-for-docker

microbox/dockerui: 精簡版dockeui ~ 16 MB
https://github.com/microbox/dockerui

2、Shipyard
Shipyard也是完全基於Docker API。

https://github.com/shipyard/shipyard

Docker雲平台

現在已經有很多雲平台已經支持Docker,包括應用編排、代碼構建、集群等功能。

  • DaoCloud:提供鏡像倉庫、應用管理、應用編排、數據卷、集群管理,並且免費使用1~2個容器,或者加入自己的服務器進行管理。
  • 百度BAE:提供彈性、分布式的應用托管服務,幫助開發者一站式輕松開發並部署應用程序(Web應用及移動應用)。每月花幾元錢就可以使用容器服務部署應用程序。
  • 阿里雲容器 :提供鏡像倉庫、容器雲服務,除鏡像倉庫其它均屬按量付費,且需要開通負載均衡。
  • 網易蜂巢:提供鏡像倉庫、容器雲服務。
  • 靈雀雲:容器雲平台,提供企業級應用集成、交付、運維的一站式解決方案。

集群

Docker Swarm

(學習中...)

Kubernetes

(學習中...)

Mesos

博客已發表文章

1、Docker學習筆記
http://www.cnblogs.com/52fhy/p/5638571.html
2、Fig 應用編排
http://www.cnblogs.com/52fhy/p/5962440.html
3、Docker實踐:安裝wordpress
http://www.cnblogs.com/52fhy/p/5962287.html
4、Docker實踐:運行Python應用
http://www.cnblogs.com/52fhy/p/5962770.html
5、Docker之Compose服務編排
http://www.cnblogs.com/52fhy/p/5991344.html
6、Docker私有倉庫搭建
http://www.cnblogs.com/52fhy/p/5998747.html

更多詳見:隨筆分類 - Docker


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM