加入RUN!PC粉絲團
最近新增的精選文章
 
最多人點閱的精選文章
 
 
精選文章 - 開發技術
分享到Plurk
分享到FaceBook
 
Docker OpenSource專案簡介
文/Nica 2017/2/6 下午 05:49:24

Docker在Linux單一實體下運作,避免了啟動虛擬機器造成的額外負擔。它可以說是一個軟體容器化的平台,提供Enterprise與Open Source兩種方向。Docker Data Center提供便捷的、具可攜性與可控制的企業用容器管理平台給開發人員與IT團隊使用。Docker容器與硬體無關,也與平台無關,更專注於應用程式、軟體本身與相依套件等等的包裝上。Docker OpenSource專案要點如下:
Docker Engine:建立與執行Docker容器。
Docker Compose:定義多容器應用程式。
Docker Registry:開放源碼Docker Image散布(發行版本)
Docker Machine:自動Docker服務開通
Docker SWARM:Host叢集與容器排程
KITEMATIC:Docker的桌面環境使用者介面

Docker Engine
Docker Engine為時下應用程式平台建置區塊。使用者可以打包應用程式程式碼與其相依套件,將它們放在一個獨立、隔絕的容器裡,與主機作業系統共享作業系統kernel。Docker Engine可以在Linux與Windows平台上執行,支援MacOS、Windows與Linux各種分支套件,可以是單一網路下的單一容器,也可以是跨網路主機叢集的多重容器。
Docker支援的Ubuntu版本就包括Ubuntu Xenial 16.04 (LTS)、Ubuntu Wily 15.10、Ubuntu Trusty 14.04 (LTS)與Ubuntu Precise 12.04 (LTS)。就Linux而言,環境基本要求為64bit的Linux分支套件、3.10以上的kernel版本,以及APT套件管理程式的組態設定(以便更新Docker套件)。本文實作環境為Ubuntu Xenial 16.04 (LTS),安裝Docker前必須完成的環境設定簡述如下:

●apt-get安裝apt-transport-https與ca-certificates套件
●自 hkp://ha.pool.sks-keyservers.net:80加入新的GPG key(58118E89F3A912897C070ADBF76221572C52609D)
●將Xenial 16.04 (LTS)的docker套件來源,加入作業系統套件軟體倉儲清單:
$ echo "deb https://apt.dockerproject.org/repo ubuntu-xenial main" | sudo tee /etc/apt/sources.list.d/docker.list
●更新apt-get
●確認apt使用正確來源清單:
$ apt-cache policy docker-engine
●建議安裝額外的kernel套件,以便使用aufs儲存裝置驅動程式:
$ sudo apt-get install linux-image-extra-$(uname -r) linux-image-extra-virtual

開始安裝Docker
一、登入系統並使用sudo權限更新apt-get索引:
$ sudo apt-get update
二、安裝docker Engine
$ sudo apt-get install docker-engine
三、啟動docker daemon
$ sudo service docker start
四、執行hello-world確認docker已安裝
$ sudo docker run hello-world
安裝成功將出現如下結果:
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
c04b14da8d14: Pull complete
Digest: sha256:0256e8a36e2070f7bf2d0b0763dbabdd67798512411de4cdcf9431a1feb60fd9
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.
<略>

Docker Hub
除了首次安裝完成所提供的hello-world外,Docker Hub提供許多現成的image供我們使用,除了廠商所提供的官方版本,也有貢獻者客製化後公開分享供大眾取用的image。在Docker Hub網站https://hub.docker.com/申請帳號後,會收到確認的Email,點選Email內容的連結(Confirm your email,兩天後失效),即可以Docker ID登入。使用者可以透過Docker Hub網站登入瀏覽image,或者透過運作中的Docker Daemon執行搜尋指令,例如:
#sudo docker search fedora

透過docker指令,可以搜尋到公開軟體倉儲庫所提供的image,將目標image拉回主機使用:
$ sudo docker pull fedora
Using default tag: latest
latest: Pulling from library/fedora
5b0bacb7828e: Pull complete
Digest: sha256:fbeff4f6ec6ce2393c77aff9b34e19e8a9e355fd46664613f14a36394adf8e71
Status: Downloaded newer image for fedora:latest
$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
fedora latest 5bafccc4d5dc 3 weeks ago 199.9 MB
hello-world latest c54a2cc56cbb 5 months ago 1.848 kB
$ sudo docker run -it fedora bash
[root@e00ce88eb315 /]#

總結
你可以把Docker Engine看成作業系統下的應用程式,在Linux下,docker長期執行一個daemon,而我們透過命令列的指令與這個daemon溝通。我們可以從docker hub直接拉image回來馬上使用,更可依自有的軟體與基礎環境需求,客製化專屬的image重複使用。