Docker概述與安裝使用

序言

      “Docker”一詞來自英國口語,意爲碼頭工人(Dock Worker),即從船上裝卸貨物的人。

       有意思的是,Docker 公司起初是一家名爲 dotCloud 的平臺即服務(Platform-as-a-Service, PaaS)提供商。底層技術上,dotCloud 平臺利用了 Linux 容器技術。爲了方便創建和管理這些容器,dotCloud 開發了一套內部工具,之後被命名爲“Docker”。Docker就是這樣誕生的!
      2013年,dotCloud 的 PaaS 業務並不景氣,公司需要尋求新的突破。於是他們聘請了 Ben Golub 作爲新的 CEO,將公司重命名爲“Docker”,放棄dotCloud PaaS 平臺,懷揣着“將 Docker 和容器技術推向全世界”的使命,開啓了一段新的征程。(從此也可以知道docker的應用場景,[email protected])

       多數技術人員在談到 Docker 時,主要是指 Docker 引擎Docker 引擎是用於運行和編排容器的基礎設施工具。有 VMware 管理經驗的讀者可以將其類比爲 ESXi。ESXi 是運行虛擬機的核心管理程序,而 Docker 引擎是運行容器的核心容器運行時。其他 Docker 公司或第三方的產品都是圍繞 Docker 引擎進行開發和集成的。

       Docker 引擎可以從 Docker 網站下載,也可以基於 GitHub 上的源碼進行構建。無論是開源版本還是商業版本,都有 Linux 和 Windows 版本。Docker 引擎主要有兩個版本:企業版(EE)和社區版(CE)。每個季度,企業版和社區版都會發佈一個穩定版本。社區版本會提供 4 個月的支持,而企業版本會提供 12 個月的支持。社區版還會通過 Edge 方式發佈月度版。

 

Docker開源項目(Moby)

        “Docker”一詞也會用於指代開源 Docker 項目。其中包含一系列可以從 Docker 官網下載和安裝的工具,比如 Docker 服務端和 Docker 客戶端。不過,該項目在 2017 年於 Austin 舉辦的 DockerCon 上正式命名爲 Moby 項目。由於這次改名,GitHub 上的 docker/docker 庫也被轉移到了 moby/moby,並且擁有了項目自己的 Logo.

        可以說Moby是Docker之母。通過Moby可以將定製化的組件打包做成一個Docker,而Moby就相當於一個組件倉庫與Docker工廠。Docker公司的這一舉動可以說也是順應了潮流,將Docker與操作系統解耦,並且將其以組件組裝的形式模塊化。可以說今後,操作系統也是Docker容器的一個基礎組件。而Moby項目既是一個組件庫又是一個框架,爲今後組件製作與組裝提供了一套規範。(Moby是Docker的上游,用於組裝Docker,Docker在用來應用.從2個項目的Logo上就可以看出來,Moby是個鯨魚尾巴,而Docker是個鯨魚[email protected])

 

Docker架構與流程

Docker的架構如下(粘貼複製自官網^_^)

 

從圖上可以看出Docker分了3個大類,客戶端,主機,倉庫(注意都是複數),

  • Clients:就是用於接收連接Hosts的客戶端,用於發送命令給Hosts執行
  • Hosts:用於接收Clients的命令,同時與遠程倉庫交互,同時屏蔽了不同的操作系統差異,提供了統一的API給Clients操作.(就是我們說的Docker守護進程)
  • Repositorys:存儲了很多不同應用的鏡像.當本地沒有鏡像的時候,會從遠程倉庫下載到本地.

如下是個簡單的流程圖途(也是從網上下的原址是:https://www.jianshu.com/p/2302ef03cfa2)

Actor可以看成是Clients,Docker Dameon是Hosts,官方倉庫對應Repositorys.

 

 

應用於鏡像的關係

容器與鏡像的關係類似於面向對象編程中的對象與類。(在舉例來講Nginx就是個鏡像,他的應用實例就是Nginx容器.這麼描述感覺有點怪哈.在一般使用的時候一般我們會選擇Linux的鏡像,創建一個Linux的容器,然後在Linux的容器裏面創建Nginx服務~~~~我覺得這麼描述是不是要容易理解一點[email protected])

Docker屬性 面向對象屬性
容器 對象
鏡像

 

 

安裝tomcat用例

 

Centos7上安裝Docker Client 和 Docker Service

這環境的安裝其實很簡單,主要是熟悉命令.具體可以參考https://www.runoob.com/docker/docker-tutorial.html

#Docker 要求 CentOS 系統的內核版本高於 3.10 ,查看本頁面的前提條件來驗證你的CentOS 版本是否支持 #Docker 。
#通過 uname -r 命令查看你當前的內核版本
[cuiyaonan2000@runoob ~]# uname -r 

#移除舊的版本
[cuiyaonan2000@runoob ~]# sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-selinux \
                  docker-engine-selinux \
                  docker-engine

#安裝需要的軟件包, yum-util 提供yum-config-manager功能,另外兩個是devicemapper驅動依賴的
[cuiyaonan2000@runoob ~]# sudo yum install -y yum-utils device-mapper-persistent-data lvm2

#設置yum源
[cuiyaonan2000@runoob ~]# sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

#更新yum 緩存
[cuiyaonan2000@runoob ~]# sudo yum makecache fast

#以查看所有倉庫中所有docker版本,並選擇特定版本安裝
[cuiyaonan2000@runoob ~]# yum list docker-ce --showduplicates | sort -r

#由於repo中默認只開啓stable倉庫,故這裏安裝的是最新穩定版17.12.0
#也可以指定版本  例如:sudo yum install docker-ce-17.12.0.ce
[cuiyaonan2000@runoob ~]# sudo yum install docker-ce

#啓動docker
[cuiyaonan2000@runoob ~]# sudo systemctl start docker

#加入開機啓動
[cuiyaonan2000@runoob ~]# sudo systemctl enable docker


#驗證安裝是否成功(有client和service兩部分表示docker安裝啓動都成功了)
[cuiyaonan2000@runoob ~]# docker version



 

 

創建Tomcat鏡像實例

注意創建過得容器並不會消失,如果停用了可以使用docker ps -a 查看.然後使用docker start <name>啓動.如果不能啓動使用systemctl restart docker 後在啓動就可以了.創建了當然也能刪除塞.具體命令可以參考:https://www.runoob.com/docker/docker-container-connection.html.

 

#拉取官方的鏡像
[cuiyaonan2000@runoob ~]# docker pull tomcat

#查看本地的鏡像
[cuiyaonan2000@runoob ~]# docker images

# 創建鏡像名稱爲tomcat的一個實例 -p指定端口映射 -d表示以守護線程運行
[cuiyaonan2000@runoob ~]# docker run --name mytomcat -p 8080:8080 -d tomcat

# 此命令用於查看 實例化的鏡像容器
[cuiyaonan2000@runoob ~]# docker ps

#停止容器運行
[cuiyaonan2000@runoob ~]# docker stop mytomcat   

#啓動一個已經存在的容器
[cuiyaonan2000@runoob ~]# docker start mytomcat

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章