一、Dcoker三個基本概念
鏡像(Image)
Docker 鏡像就是一個隻讀的模闆。
例如:一個鏡像可以包含一個完整的 CentOS作業系統環境,裡面僅安裝了 Apache 或使用者需要的其它應用程式。
鏡像可以用來建立 Docker 容器。
Docker 提供了一個很簡單的機制來建立鏡像或者更新現有的鏡像,使用者甚至可以直接從其他人那裡下載下傳一個已經做好的鏡像來直接使用。
容器(Container)
Docker 利用容器來運作應用。
容器是從鏡像建立的運作執行個體。它可以被啟動、開始、停止、删除。每個容器都是互相隔離的、保證安全的平台。
可以把容器看做是一個簡易版的 Linux 環境(包括root使用者權限、程序空間、使用者空間和網絡空間等)和運作在其中的應用程式。
*注:鏡像是隻讀的,容器在啟動的時候建立一層可寫層作為最上層。
倉庫(Repository)
倉庫是集中存放鏡像檔案的場所。有時候會把倉庫和倉庫注冊伺服器(Registry)混為一談,并不嚴格區分。實際上,倉庫注冊伺服器上往往存放着多個倉庫,每個倉庫中又包含了多個鏡像,每個鏡像有不同的标簽(tag)。
倉庫分為公開倉庫(Public)和私有倉庫(Private)兩種形式。
最大的公開倉庫是 Docker Hub,存放了數量龐大的鏡像供使用者下載下傳。 國内的公開倉庫包括 Docker Pool等,可以提供大陸使用者更穩定快速的通路。
當然,使用者也可以在本地網絡内建立一個私有倉庫。
當使用者建立了自己的鏡像之後就可以使用 push 指令将它上傳到公有或者私有倉庫,這樣下次在另外一台機器上使用這個鏡像時候,隻需要從倉庫上 pull 下來就可以了。
*注:Docker 倉庫的概念跟 Git 類似,注冊伺服器可以了解為 GitHub 這樣的托管服務。
二、Dcoker安裝(CentOS7)
1、前置條件
需要核心版本高于3.10的64位作業系統:
[[email protected] ~]# uname -r
3.10.0-693.el7.x86_64
檢查Device Mapper,使用Device Mapper作為Docker的存儲驅動,為Docker提供存儲能力:
[[email protected] ~]# ls -l /sys/class/misc/device-mapper
lrwxrwxrwx. 1 root root 0 10月 27 06:35 /sys/class/misc/device-mapper -> ../../devices/virtual/misc/device-mapper
也可以在/proc/devices檔案中檢查是否有device-mapper條目:
[[email protected] ~]# sudo grep device-mapper /proc/devices
253 device-mapper
如果未檢測到Device Mapper,可以試着安裝device-mapper軟體包:
[[email protected] ~]# sudo yum install -y device-mapper
安裝完成後,需要加載dm_mod核心子產品:
[[email protected] ~]# sudo modprobe dm_mod
子產品加載完畢後,就可以找到/sys/class/misc/device-mapper條目了。
2、更新yum
Yum 是 CentOS 的包管理工具,類似于 apt,我們還是以 root 使用者登入系統,然後更新 yum 源:
yum update
3、添加倉庫
在/etc/yum.repos.d/ghostcloud.repo 中加入
[dockerrepo]
name=Docker Repository
baseurl=https://yum.dockerproject.org/repo/main/centos/$releasever/
enabled=1
gpgcheck=1
gpgkey=https://yum.dockerproject.org/gpg
4、安裝
CentOS7 系統 CentOS-Extras 庫中已帶 Docker,可以直接安裝:
sudo yum install docker
5、啟動Docker,并設定為開機啟動
[[email protected] ~]# service docker start
[[email protected] ~]# chkconfig docker on
注:此處采用了舊式的 sysv 文法,如采用CentOS 7中支援的新式 systemd 文法,如下:
[root@localhost ~]# systemctl start docker.service
[[email protected] ~]# systemctl enable docker.service
6、測試安裝是否成功
[[email protected] ~]# docker version
Client:
Version: 1.12.6
API version: 1.24
Package version: docker-1.12.6-55.gitc4618fb.el7.centos.x86_64
Go version: go1.8.3
Git commit: c4618fb/1.12.6
Built: Thu Sep 21 22:33:52 2017
OS/Arch: linux/amd64
Server:
Version: 1.12.6
API version: 1.24
Package version: docker-1.12.6-55.gitc4618fb.el7.centos.x86_64
Go version: go1.8.3
Git commit: c4618fb/1.12.6
Built: Thu Sep 21 22:33:52 2017
OS/Arch: linux/amd64
三、Dcoker解除安裝(CentOS7)
1、查詢安裝過得軟體包
[[email protected] ~]# yum list installed | grep docker
docker.x86_64 2:1.12.6-55.gitc4618fb.el7.centos
docker-client.x86_64 2:1.12.6-55.gitc4618fb.el7.centos
docker-common.x86_64 2:1.12.6-55.gitc4618fb.el7.centos
2、删除安裝的軟體包
yum -y remove docker.x86_64
3、删除鏡像/容器
rm -rf /var/lib/docker