Docker應用容器引擎介紹與搭建

附上:linux

喵了個咪的博客:w-blog.cngit

官方Git地址:https://github.com/moby/mobygithub

1. 爲何Docker會火

  • 截止到如今Docker在github上的star數有48570
  • 阿里雲,騰訊雲,AWS,都推出了本身的Docker平臺
  • 70%的調查企業已經正在使用或考慮使用Docker;

你們回顧以往的經理每每比較火的軟件系統(好比Hadoop)都是解決了一個領域上痛點,Docker也不例外,就筆者總結有以下痛點是Docker解決的:docker

  • 複雜的環境搭建 筆者以前安裝一個軟件可能有各類依賴關係極爲複雜(好比:APPRTC),Docker能夠吧環境依賴打包在一塊兒只須要一條命令就能夠開箱使用
  • 隔離性 - 每一個用戶實例之間相互隔離, 互不影響。 好比你的程序A須要使用PHP7.0,程序B須要使用PHP7.2,可是程序A不能使用PHP7.2,在虛擬的時候你只能選擇開兩臺,使用docker就能夠在同一臺服務器互不影響的狀況下順利運行
  • 可配額/可度量 - 每一個用戶實例能夠按需提供其計算資源,所使用的資源能夠被計量。 筆者在運營環境出過一次事故,大體是A應用除了點問題致使CPU吃高,其餘程序所有都沒法訪問,有的docker能夠定額分配資源限制不重要的程序不會影響到重要的程序
  • 移動性 - 用戶的實例能夠很方便地複製、移動和重建以及回滾。
  • 基本不增長額外的性能消耗 Docker直接移植於Linux內核之上,經過運行Linux進程將底層設備虛擬隔離,這樣系統性能的損耗也要比虛擬機低的多,幾乎能夠忽略。同時,Docker應用容器的啓停很是高效,能夠支持大規模的分佈系統的水平擴展,真正給企業開發帶來福音。
  • DevOps持續迭代交付 Docker技術將應用以集裝箱的方式打包交付,使應用在不一樣的團隊中共享,經過鏡像的方式應用能夠部署於任何環境中。這樣避免了各團隊之間的協做問題的出現,成爲企業實現DevOps目標的重要工具。以容器方式交付的Docker技術支持不斷地開發迭代,大大提高了產品開發和交付速度。

正如中國惠普雲計算集成雲技術首席專家劉豔凱所說的那樣:「任何一項技術的發展和它受到的追捧,都是由於它可以解決困擾人們的問題」,Docker就是用來解決這個問題的ubuntu

2. 搭建安裝

這裏選擇使用Centos來安裝Dockerwindows

  1. 安裝所需的包。yum-utils提供了yum-config-manager 效用,並device-mapper-persistent-data和lvm2由須要 devicemapper存儲驅動程序。
> yum install -y yum-utils device-mapper-persistent-data lvm2
  1. 使用如下命令設置release存儲庫。即便您想從edge和test存儲庫安裝構建,也老是須要release存儲庫。
> yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
  1. 可選:啓用edge和test存儲庫。這些存儲庫包含在docker.repo上面的文件中,但默認狀況下處於禁用狀態。您能夠將它們與穩定的存儲庫一塊兒啓用
> yum-config-manager --enable docker-ce-edge
> yum-config-manager --enable docker-ce-test

您能夠經過使用該標誌運行命令來禁用edge和test存儲庫 。centos

> yum-config-manager --disable docker-ce-edge

安裝Docker CE

經過如下命令能夠直接安裝最新版本的Docker-cebash

> yum install docker-ce

若是啓用了多個Yum存儲庫,則安裝或更新時未指定版本yum install或 yum update命令始終會安裝儘量高的版本,這可能不適合您的穩定性需求。服務器

在生產系統上,您應該安裝特定版本的Docker CE,而不是始終使用最新版本。列出可用的版本。app

此示例使用該sort -r命令按版本號對結果進行排序,從最高到最低。

> yum list docker-ce --showduplicates | sort -r

docker-ce.x86_64            18.02.0.ce-1.el7.centos             docker-ce-edge  
docker-ce.x86_64            18.01.0.ce-1.el7.centos             docker-ce-edge  
docker-ce.x86_64            17.12.1.ce-1.el7.centos             docker-ce-stable
docker-ce.x86_64            17.12.1.ce-1.el7.centos             docker-ce-edge  
docker-ce.x86_64            17.12.0.ce-1.el7.centos             docker-ce-stable
docker-ce.x86_64            17.12.0.ce-1.el7.centos             docker-ce-edge  
docker-ce.x86_64            17.11.0.ce-1.el7.centos             docker-ce-edge  
docker-ce.x86_64            17.10.0.ce-1.el7.centos             docker-ce-edge

列表的內容取決於啓用了哪些存儲庫,而且特定於您的CentOS .el7版本(在此示例中,由版本的後綴指示)。選擇一個特定的版本進行安裝。第二列是版本字符串。您可使用整個版本字符串。第三列是存儲庫名稱,它指示軟件包來自哪一個存儲庫。要安裝特定版本,請將版本字符串附加到包名稱並用連字符(-)分隔。

注意:版本字符串是軟件包名稱加上第一個連字符的版本。在上面的例子中,徹底的包名是docker-ce-17.03.0.ce

爲了後面但是搭建Kubernetes能夠參考個更新日誌裏面的描述

kubernetes/CHANGELOG-1.8.md at master · kubernetes/kubernetes · GitHub

Kubernetes 1.8  <--Docker 1.11.2 to 1.13.1 and 17.03.2

這裏選擇Rancher認證過的17.03.2而且K8S支持版本

# 先安裝docker-ce-selinux-17.03.2.ce,不然安裝docker-ce會報錯
> yum install https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-ce-selinux-17.03.2.ce-1.el7.centos.noarch.rpm 
> yum install docker-ce-17.03.2.ce

啓動Docker而且設置開機自啓。

> systemctl start docker
> systemctl enable docker

docker經過運行hello-world 映像驗證安裝是否正確。

> docker run hello-world
# 以下輸出證實已經完成了Docker環境的搭建
Hello from Docker!

3 總結

第一步已經完成已經可使用Docker環境了,下一步咱們須要熟悉Docker相關的一些命令

注:筆者能力有限有說的不對的地方但願你們可以指出,也但願多多交流!

相關文章
相關標籤/搜索