GIS+=地理資訊+容器技術(3)——Docker安裝和鏡像管理__容器|Docker

來源:互聯網
上載者:User

--------------------------------------------------------------------------------------

Blog:    http://blog.csdn.net/chinagissoft

QQ群:16403743

宗旨:專註於"GIS+"前沿技術的研究與交流,將雲端運算技術、大資料技術、容器技術、物聯網與GIS進行深度融合,探討"GIS+"技術和行業解決方案

轉載說明:文章允許轉載,但必須以連結方式註明源地址,否則追究法律責任!

--------------------------------------------------------------------------------------

Docker安裝

由於本人測試作業系統為Ubuntu14.04,對於該作業系統來說,可以直接從Ubuntu源安裝Docker程式,具體操作如下

$sudo apt-get update$sudo apt-get install -y docker.io$sudo ln -sf /usr/bin/docker.io /usr/local/bin/docker$sudo sed -i '$acomplete -F _docker docker' /etc/bash_completion.d/docker.io

但是如果你希望安裝最新版本的Docker程式,你可能需要更新不同的源,最新的Docker版本為1.9,具體操作如下

$sudo apt-get install apt-transport-https$sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 36A1D7869245C8950F966E92D8576A8BA8$sudo bash -c "echo deb https://get.docker.io/ubuntu docker main > /etc/apt/sources.list.d/docker.list"$sudo apt-get update$sudo apt-get install lxc-docker

相對來說,Docker安裝比較其他OpenStack、Hadoop、Spark相對簡單。


鏡像管理

Linux  FS in Docker


對傳統Linux來說,當我們啟動這個作業系統時,一般會將Linux的rootFS設定為唯讀狀態,然後檢查其完整性,然後再將rootFS設定為可寫狀態,這樣我們就可以對Linux作業系統進行相關操作了。


Docker在啟動container時,也將rootfs設定為readonly,然後通過aufs把一個readwrite的fs掛載到rootfs上,並且把下層fs設定為readonly,這樣就構成了一個完整的os。



•對每一層readonly的fs,稱之為image( 例如上面的Debian或者BusyBox)
•對頂上read-write的fs,稱之為container
•對於readonly中的內容的修改,採用的是COW(Copyon Write)的技術,把檔案複製到read-wirte層並修改,實際使用者看到的是當前container層中的檔案,image中的檔案不會被影響

•除了baseimage之外,每一層image都有一個parent image( 例如Debian,(Debian+emaces))
•沒有parentimage的鏡像叫base image( 例如Kernal)
•基於COW的技術,image部分是不會被修改的,因此container可以共用image層的fs,提高了儲存效率
如何獲得鏡像
一般情況下,我們從Docker官方倉庫可以獲得,當然中國也有比較知名的Docker鏡像源,例如DAOCloud或者靈雀雲。這個類似與我們是從Ubuntu官方源下載軟體還是從阿里源還是163源下載一樣。

docker官方提供的用來共用image的平台:https://hub.docker.com
曾經在2015年6月份參加過北京的雲端運算大會,當時對容器技術(Docker)還不太熟悉,不過也有幸聽了來自DAOCloud的創始人陳齊彥和靈雀雲創始人左玥的演講,一個來自EMC(曾就職於Oracle),一個來自微軟(負責Windows Server 2016容器部分的研發),都是牛人。


DAOCloud:https://www.daocloud.io/

雲雀云:http://www.alauda.cn/


查詢鏡像


我們可以直接從OS裡面使用Docker命令來查詢相關鏡像資訊。

例如我們查詢一下Hadoop的容器鏡像。



下載鏡像


既然我們可以查詢鏡像,我們就可以將相關鏡像下載到本地來使用,例如我們可以下載一個Ubuntu12.04作業系統的鏡像。


如果下載不指定tag,會將所有鏡像相關tags下載下來,關於tag,請繼續查看後面介紹。

一般情況下,該操作可能由於網路、鏡像大小導致不同的等待時間。所以建議下載有針對性。

root@controller:/etc/bash_completion.d# sudo docker pull ubuntu:12.0412.04: Pulling from library/ubuntuce049369478e: Pull complete2ec1b169061f: Pulling fs layer9bbaf44a8a7c: Download complete38f2c35e1b51: Download completePulling repository docker.io/library/ubuntu0ac5b09d8536: Download completebe10ee96620d: Download complete5e59ab480134: Download completeefbb515ae632: Download completeStatus: Downloaded newer image for ubuntu:12.04docker.io/library/ubuntu: this image was pulled from a legacy registry.  Important: This registry version will not be supported in future versions of docker.


鏡像命名與版本管理


鏡像下載完畢之後,我們可以通過如下命令來顯示鏡像列表資訊。

root@controller:~/sinatra# docker imagesREPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZEubuntu              14.04               1d073211c498        2 weeks ago         187.9 MBubuntu              14.04.3             1d073211c498        2 weeks ago         187.9 MBubuntu              12.04               0ac5b09d8536        2 weeks ago         136.1 MB<none>              <none>              ce049369478e        2 weeks ago         135.9 MBtraining/sinatra    latest              f0f4ab557f95        17 months ago       447 MB

普通鏡像的命名規範{namespace}/{repositoryname}:{tag}

•namespace是dockerhub的使用者名稱,時間是起到了namespace的作用

•repository,類似於github的項目,例如mysql

•tag,表示版本資訊,可選,預設latest,例如cesc/mysql:5.6


上傳鏡像
一般情況下,我們可以使用如下四個步驟來上傳我們做好的鏡像

•dockerlogin,登入到docker hub中

•把container通過dockercommit的命令轉換為image

•通過dockertag來命名新產生的image

•dockerpush到docker hub中


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.