最終目标 :
- Docker 是什麼
- 如何使用 Docker
- 制作 Java鏡像
- 使用 Dockerfile建構 Java鏡像
- 使用 Docker Registry 管理鏡像
- Spring Boot 與 Docker 內建
- Jenkins+Docker+Git實作自動化打包
首先了解下Docker 是什麼,有什麼作用
Docker 官網 : http//www.docker.com/
Docker 源碼位址: http//github.com/docker/docker
Docker 是基于 Go語言開發,性能非常優秀.
簡單來說就是将服務以及運作環境加以封裝,確定封裝後的産物作為傳遞物,這個傳遞物可以随時建構,裝載,運作.
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進行開源,可搭建内網鏡像中心
-
Docker 引擎(Docker Engine)
可以了解為一個運作在伺服器上的背景程序,本質上就是一個服務,可通過docker指令用戶端發送指令與Docker引擎通信.
-
Docker 用戶端(Docker Client)
Docker 用戶端有兩種,一種是Docker 指令用戶端,隻要打開指令終端視窗輸入Docker 指令就能操作Docker 引擎, 另一種是REST API用戶端,一般會在應用程式中通過Api與Docker引擎發送互動
- Docker 鏡像(Docker Images)
- Docker 容器(Docker Containers)
- Docker 鏡像注冊中心(Docker Registry)
虛拟機與Docker對比
Docker 本質上為我們提供了一個"沙箱(Sandbox)"環境,它能将應用程式進行封裝,并提供與虛拟機相似的隔離性,這種隔離性相當輕量.虛拟機軟體需要模拟硬體與網絡資源,會占用大量的系統開銷(一台普通伺服器最多啟動幾十個虛拟機).使用Docker 來實作虛拟化技術隻需先在主控端上安裝一個Docker引擎,就可下載下傳所需的docker鏡像,Docker引擎完全利用主控端的硬體與網絡資源,占用的系統開銷較少(一台普通伺服器可啟動上千個Docker容器)
Docker 的特點
Docker 是通過底層上封裝了 Linux 容器技術來實作的并沒有建立任何新技術,但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
安裝條件:
- CPU 必須為 64 位
- Linux 核心必須在3.10版本以上
- 可使用uname -a指令擷取以上版本資訊
安裝步驟:
- 使用VM或VirtualBox安裝centos 7及簡單的網絡配置
- 更新yum包,為了安裝最新版本的Docker我們需要使用 yum update 指令更新yum 包
- 添加 yum的Docker包倉庫
- 安裝 Docker引擎 使用指令 yum install docker-engine
- 啟動 Docker 引擎 , Docker引擎安裝完畢後使用指令 service docker start 啟動Docker引擎服務
- 檢視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
推薦使用腳本安裝方式 ,文章都是個人閱讀資料後總結有誤之處請大家斧正,後面會持續更新敬請關注!