Centos6.7安裝docker1.7.1
一、Docker簡介
Docker 提供了一個可以執行你的應用程式的封套(envelope),或者說容器。它原本是 dotCloud 啟動的一個業餘專案,並在前些時候開源。它吸引了大量的關注和討論,導致 dotCloud 把它重新命名到 Docker Inc。它最初是用 Go 語言編寫的,它就相當於是加在 LXC(LinuX Containers,linux 容器)上的管道,允許開發者在更高層次的概念上工作。
Docker 擴充套件了 Linux 容器(Linux Containers),或著說 LXC,通過一個高層次的 API 為程式單獨提供了一個輕量級的虛擬環境。Docker 利用了 LXC, cgroups 和 Linux 自己的核心。和傳統的虛擬機器不同的是,一個 Docker 容器並不包含一個單獨的作業系統,而是基於已有的基礎設施中作業系統提供的功能來執行的。
Docker類似虛擬機器的概念,但是與虛擬化技術的不同點在於下面幾點:
1.虛擬化技術依賴物理CPU和記憶體,是硬體級別的;而docker構建在作業系統上,利用作業系統的containerization技術,所以docker甚至可以在虛擬機器上執行。
2.虛擬化系統一般都是指作業系統映象,比較複雜,稱為“系統”;而docker開源而且輕量,稱為“容器”,單個容器適合部署少量應用,比如部署一個redis、一個memcached。
3.傳統的虛擬化技術使用快照來儲存狀態;而docker在儲存狀態上不僅更為輕便和低成本,而且引入了類似原始碼管理機制,將容器的快照歷史版本一一記錄,切換成本很低。
4.傳統的虛擬化技術在構建系統的時候較為複雜,需要大量的人力;而docker可以通過Dockfile來構建整個容器,重啟和構建速度很快。更重要的是Dockfile可以手動編寫,這樣應用程式開發人員可以通過釋出Dockfile來指導系統環境和依賴,這樣對於持續交付十分有利。
5.Dockerfile可以基於已經構建好的容器映象,建立新容器。Dockerfile可以通過社群分享和下載,有利於該技術的推廣。
Docker 會像一個可移植的容器引擎那樣工作。它把應用程式及所有程式的依賴環境打包到一個虛擬容器中,這個虛擬容器可以執行在任何一種 Linux 伺服器上。這大大地提高了程式執行的靈活性和可移植性,無論需不需要許可、是在公共雲還是私密雲、是不是裸機環境等等。
Docker也是一個雲端計算平臺,它利用Linux的LXC、AUFU、Go語言、cgroup實現了資源的獨立,可以很輕鬆的實現檔案、資源、網路等隔離,其最終的目標是實現類似PaaS平臺的應用隔離。
Docker 由下面這些組成:
1. Docker 伺服器守護程式(server daemon),用於管理所有的容器。
2. Docker 命令列客戶端,用於控制伺服器守護程式。
3. Docker 映象:查詢和瀏覽 docker 容器映象。
docker特性
檔案系統隔離:每個程式容器執行在完全獨立的根檔案系統裡。
資源隔離:可以使用cgroup為每個程式容器分配不同的系統資源,例如CPU和記憶體。
網路隔離:每個程式容器執行在自己的網路名稱空間裡,擁有自己的虛擬介面和IP地址。
寫時複製:採用寫時複製方式建立根檔案系統,這讓部署變得極其快捷,並且節省記憶體和硬碟空間。
日誌記錄:Docker將會收集和記錄每個程式容器的標準流(stdout/stderr/stdin),用於實時檢索或批量檢索。
變更管理:容器檔案系統的變更可以提交到新的映像中,並可重複使用以建立更多的容器。無需使用模板或手動配置。
互動式Shell:Docker可以分配一個虛擬終端並關聯到任何容器的標準輸入上,例如執行一個一次性互動shell。
兩個基礎概念images與container
Container和Image 在Docker的世界裡,Image是指一個只讀的層(Layer),這裡的層是AUFS裡的概念,最直觀的方式就是看一下docker官方給出的圖:
Docker使用了一種叫AUFS的檔案系統,這種檔案系統可以讓你一層一層地疊加修改你的檔案,最底下的檔案系統是隻讀的,如果需要修改檔案,AUFS會增加一個可寫的層(Layer),這樣有很多好處,例如不同的Container可以共享底層的只讀檔案系統(同一個Kernel),使得你可以跑N多個Container而不至於你的硬碟被擠爆了!這個只讀的層就是Image!而如你所看到的,一個可寫的層就是Container。
那Image和Container的區別是什麼?很簡單,他們的區別僅僅是一個是隻讀的層,一個是可寫的層,你可以使用docker commit 命令,將你的Container變成一個Image,也就是提交你所執行的Container的修改內容,變成一個新的只讀的Image,這非常類似於git commit命令。
二、Docker安裝
目前,Docker官網上提供的docker是基於centos7系列安裝方法。如果我們想在低於3.x核心的作業系統(比如Centos6.7)上裝Docker最新版,勢必要升級核心。但是想要在Centos6.7上安裝可以安裝較低版本的Docker。事實上,對於核心版本要大於3.10這個要求,是從Docker1.8.2版本開始的,Docker之前的版本是可以執行在較低核心版本之上的,比如1.7.1。
安裝系統環境:
1
2
3
|
[root@Centos ~] # cat /etc/issue
CentOS release 6.7 (Final) Kernel |
1
2
|
[root@Centos ~] # uname -a
Linux Centos 2.6.32-573.el6.x86_64 #1 SMP Thu Jul 23 15:44:03 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
|
由於在Centos6.7的標準yum源中已經沒有Docker的安裝包了,這時,我們需要安裝EPEL。
EPEL(Extra Packages for Enterprise Linux),企業版Linux額外包,RHEL分佈非標準包的社群類庫。安裝如下:
1
|
rpm -iUvh http: //dl .fedoraproject.org /pub/epel/6/x86_64/epel-release-6-8 .noarch.rpm
|
安裝完成yum.repos.d下會出現新的epol源:
通過新的epel源安裝Docker1.7.1,在1.7.1中,安裝包名稱為docker-io。
1
|
[root@Centos ~] # yum install docker-io
|
問題:
1、於docker搜尋映象出錯解決方法。
1
2
|
[root@Centos ~] # docker search mysql-server
Error response from daemon: Get https: //index .docker.io /v1/search ?q=mysql-server: dial tcp 34.234.103.99:443: i /o timeout
|
解決:
修改 /etc/sysconfig/docker新增以下語句:
1
|
other_args= "--exec-driver=lxc --selinux-enabled"
|
相關文章
- CentOS6.7 vue 安裝CentOSVue
- centos6.7 安裝ffmpeg 簡單使用CentOS
- 安裝Centos6.7的系統配置CentOS
- CentOS6.7安裝配置nfs服務CentOSNFS
- Centos6.7安裝Pycharm及升級JDKCentOSPyCharmJDK
- KVM之一:安裝準備(基於CentOS6.7)CentOS
- CentOS6.7下使用cmake編譯安裝MySQL5.5.32CentOS編譯MySql
- python之 centos6.7下 python 3.5.2 原始碼、Django-1.9 安裝PythonCentOS原始碼Django
- Centos6.7使用者操作CentOS
- Centos6.7使用者組操作CentOS
- Centos6.7關機和重啟命令CentOS
- CentOS6.7原始碼搭建LAMP平臺CentOS原始碼LAMP
- codis安裝 (java 安裝 + zookeeper 安裝 + go 安裝 + codis 安裝JavaGo
- redhat6.7修改為centos6.7官方yum源RedhatCentOS
- 安裝npm 解除安裝npm 安裝apidocNPMAPI
- mysql安裝 (yum 安裝)MySql
- MMM安裝、MHA安裝
- mysql安裝------RPM包安裝及解除安裝MySql
- oracle安裝:OUI安裝Oracle(圖形介面安裝)OracleUI
- ffmpeg安裝之mac安裝Mac
- docker安裝及解除安裝Docker
- 02 安裝git、安裝TortoiseGitGit
- Ubuntu解除安裝和安裝Ubuntu
- Orace RAC安裝-DNS安裝DNS
- caffe安裝系列——安裝OpenCVOpenCV
- SPARK 安裝之scala 安裝Spark
- mac 安裝opencv homebrew安裝MacOpenCV
- Oracle 安裝與解除安裝Oracle
- solaris mysql 安裝 解除安裝MySql
- BiocManager安裝,devtools安裝dev
- JDK安裝和解除安裝JDK
- 安裝HomeBrew提示已安裝並無法解除安裝
- SQL Server 2012 安裝——安裝 OR 解除安裝SQLServer
- win10安裝版怎麼安裝_安裝版win10安裝教程Win10
- mysql安裝-----二進位制包安裝及解除安裝MySql
- cocoapods安裝/解除安裝/使用
- Mac Redis安裝與解除安裝MacRedis
- [ 安裝 ] Zeppelin安裝步驟!