天天看點

Docker 的特性與安裝使用

最終目标 :

  1. Docker 是什麼
  2. 如何使用 Docker
  3. 制作 Java鏡像
  4. 使用 Dockerfile建構 Java鏡像
  5. 使用 Docker Registry 管理鏡像
  6. Spring Boot 與 Docker 內建
  7. Jenkins+Docker+Git實作自動化打包

首先了解下Docker 是什麼,有什麼作用

Docker 官網 : http//www.docker.com/

Docker 源碼位址: http//github.com/docker/docker

Docker 是基于 Go語言開發,性能非常優秀.

簡單來說就是将服務以及運作環境加以封裝,確定封裝後的産物作為傳遞物,這個傳遞物可以随時建構,裝載,運作.

Docker 的特性與安裝使用

 Docker核心概念(什麼是Docker引擎?什麼是Docker容器?)

         類似我們曾經使用的CD光牒能在上面刻錄資料,然後隻需将CD光牒放入光驅中就能讀取資料,同樣我們隻需擷取Docker 鏡像就能将其載入到Docker 引擎中并運作鏡像.首先我們需要将資料打包到鏡像中才能将Docker鏡像交給其他人使用

          可随時運作Docker鏡像,啟動一個Docker容器,該容器将運作鏡像中封裝的程式

         官方提供了一個Docker Hub的鏡像注冊中心,用于存放公開和私有的Docker 鏡像倉庫. 我們可随時通過Docker Hub拉取Docker鏡像,也可以自由将自己建立的Docker鏡像推送到Docker Hub上

     Docker Hub位址: https://hub.docker.com/    Docker官方已将注冊中心核心元件Docker Registry進行開源,可搭建内網鏡像中心

  1. Docker 引擎(Docker Engine)

    可以了解為一個運作在伺服器上的背景程序,本質上就是一個服務,可通過docker指令用戶端發送指令與Docker引擎通信.

  2. Docker 用戶端(Docker Client)

    Docker 用戶端有兩種,一種是Docker 指令用戶端,隻要打開指令終端視窗輸入Docker 指令就能操作Docker 引擎, 另一種是REST API用戶端,一般會在應用程式中通過Api與Docker引擎發送互動

  3. Docker 鏡像(Docker Images)
  4. Docker 容器(Docker Containers)
  5. Docker 鏡像注冊中心(Docker Registry)

虛拟機與Docker對比

        Docker 本質上為我們提供了一個"沙箱(Sandbox)"環境,它能将應用程式進行封裝,并提供與虛拟機相似的隔離性,這種隔離性相當輕量.虛拟機軟體需要模拟硬體與網絡資源,會占用大量的系統開銷(一台普通伺服器最多啟動幾十個虛拟機).使用Docker 來實作虛拟化技術隻需先在主控端上安裝一個Docker引擎,就可下載下傳所需的docker鏡像,Docker引擎完全利用主控端的硬體與網絡資源,占用的系統開銷較少(一台普通伺服器可啟動上千個Docker容器)

Docker 的特性與安裝使用

Docker 的特點

Docker 是通過底層上封裝了 Linux 容器技術來實作的并沒有建立任何新技術,但Docker具有 快速運作(啟動快隻需幾秒),節省資源(系統開銷少),便于互動(包含服務與運作環境),容易管理的特點

Docker 系統架構 

Docker 的特性與安裝使用
  • Client : 表示Docker用戶端,可通過 docker build 指令建立 Docker鏡像;docker pull 拉取鏡像;Docker run運作而啟動鏡像
  • DOCKER_HOST: 運作Docker引擎的主控端,其中包括 Docker Daemon 背景程序,可通過該程序來建立Docker 鏡像,并在Docker鏡像上啟動Docker 容器
  • Registry: 表示Docker 官方鏡像注冊中心,其中包含了大量的Docker 鏡像倉庫,可通過引擎拉取所需的鏡像到主控端上

Docker 安裝

Docker官方建議我們将Docker 引擎運作在Linux 作業系統上.當然也可以運作在 Mac OSX 和windows 上,生産環境不推薦使用

這裡介紹在 CentOS 中安裝 Docker,Mac OSX 和windows環境使用較少這裡不介紹,個人學習或研究請安裝Docker for Mac

安裝條件:

  1. CPU 必須為 64 位
  2. Linux 核心必須在3.10版本以上
  3. 可使用uname -a指令擷取以上版本資訊

安裝步驟:

  1. 使用VM或VirtualBox安裝centos 7及簡單的網絡配置
  2. 更新yum包,為了安裝最新版本的Docker我們需要使用 yum update 指令更新yum 包
  3. 添加 yum的Docker包倉庫
  4. 安裝 Docker引擎  使用指令 yum install docker-engine
  5. 啟動 Docker 引擎 , Docker引擎安裝完畢後使用指令 service docker start 啟動Docker引擎服務
  6. 檢視Docker 版本好  使用 docker version 指令 
    兩種安裝方式
    
    yum安裝 
    1.更新yum包 
    $ sudo yum update 
    2.添加yum倉庫 
    $ sudo tee /etc/yum.repos.d/docker.repo <<-‘EOF’ 
    [dockerrepo] 
    name=Docker Repository 
    baseurl=https://yum.dockerproject.org/repo/main/centos/7/ 
    enabled=1 
    gpgcheck=1 
    gpgkey=https://yum.dockerproject.org/gpg 
    EOF 
    3.安裝docker包 
    $ sudo yum install docker-engine 
    4.運作docker背景程序 
    $ sudo service docker start 
    5.檢測docker是否正确安裝 
    $ sudo docker run hello-world
    腳本安裝 
    1.更新yum包 
    $ sudo yum update 
    2.運作docker安裝腳本 
    $ curl -fsSL https://get.docker.com/ | sh 
    3.運作docker背景程序 
    $ sudo service docker start 
    4.檢測docker是否正确安裝 
    $ sudo docker run hello-world
               

推薦使用腳本安裝方式 ,文章都是個人閱讀資料後總結有誤之處請大家斧正,後面會持續更新敬請關注!