Docker系列之Docker鏡像(讀書筆記)

1、基本概念

  Docker包括三個基本概念鏡像、容器、倉庫。docker

  Docker鏡像:就是一個只讀的模板。例如:一個鏡像能夠包含一個完整的ubuntu操做系統環境,裏面僅安裝了Apache或其餘應用程序。用戶能夠直接從其餘人那你下載一個已經作好的鏡像直接使用。ubuntu

  Docker容器:Docker利用容器來運行應用。容器是從鏡像建立的運行例。bash

  Docker倉庫:倉庫是存放鏡像文件的場所。倉庫分爲公開倉庫和私有倉庫。最大的公開倉庫是Docker Hub,存放這數量龐大的鏡像供用戶下載。國內的公開倉庫包括Docker Pool。服務器

2、Docker安裝

  2.1 Ubuntu系統安裝Docker

  Ubuntu14.04系統中自帶Docker包,能夠直接安裝(可能不是最新的)。ui

sudo apt-get update sudo apt-get install -y docker.io

  Ubuntu14.04如下的能夠經過Docker源安裝最新的Docker版本。spa

$ sudo apt-get install apt-transport-https $ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9
$ sudo bash -c "echo deb https://get.docker.io/ubuntu docker main > /etc/apt/sources.list.d/docker.list" $ sudo apt-get update $ sudo apt-get install lxc-docker

 啓動Docker服務:sudo service docker start操作系統

  2.2 Centos系列安裝Docker

  CentOS6code

    安裝Docker,命令以下:server

sudo yum install http://mirrors.yun-idc.com/epel/6/i386/epel-release-6-8.noarch.rpm
sudo yum install docker-io

   CentOS7blog

    CentOS7系統CentOS-Extras庫中已帶Docker,能夠直接安裝:

sudo yum install docker

3、Docker鏡像

  Docker運行容器須要本地存在對應的鏡像,若是鏡像不存在本地,Docker會從鏡像倉庫下載(默認是Docker Hub公共註冊服務器中的倉庫)。

  3.1 獲取鏡像

  經過 docker pull 命令從倉庫獲取所須要的鏡像。如:sudo docker pull ubuntu:12.04,該命令至關於 sudo docker pull registry.hub.docker.com/ubuntu:12.04命令

使用docker images顯示本地已有的鏡像。

在列出來的信息中,能夠看到幾個字段信息:

  • 來源於哪一個倉庫,如ubuntu
  • 鏡像標記,如12.04
  • 它的ID號(惟一)
  • 建立時間
  • 鏡像大小

  3.2 建立本地鏡像

  使用docker build 建立一個新的鏡像。首先須要建立一個Dockerfile,包含如下如何建立鏡像的指令。

  • 使用 # 來註釋
  • FROM指令告訴Docker使用哪一個鏡像做爲基礎
  • 接着是維護者的信息
  • RUN開頭的指令會在建立中運行,好比安裝一個軟件包,在這裏使用apt-get 來安裝一些軟件

編寫完成Dockerfile後,可使用 docker build 來生成鏡像。使用下面命令:

sudo docker build -t="myimage" /Microheart/

 其中 -t 標記來添加tag(所有爲小寫)。/Microheart/表示Dockerfile文件所在的文件夾。若是Dockerfile中指定的Docker的基礎鏡像本地沒有,則會下載。其中過程爲:首先上傳Dockerfile內容,而後Dockerfile中的指令被一條條執行。每一步都建立一個新容器,在容器中執行指令並提交修改。全部指令所有執行完後,返回最終的鏡像Id。全部的中間步驟所產生的容器都被刪除和清理。注意一個鏡像不能超過127層。

  3.3 上傳鏡像到Docker Hub

  首先註冊Docker用戶,而後本地用 docker login 登陸,登陸後使用 docker push 上傳鏡像。須要注意的是Docker Hub對鏡像名稱有要求,須要命名爲:用戶的的註冊名/鏡像名。若是本地的鏡像名不符合,經過 docker tag 修改。

   3.4 存出和載入鏡像

  存出鏡像就至關於將鏡像打包,而後複製到別的機器上解壓(載入鏡像)使用。使用 docker save 命令存出。使用 docker load 命令載入。例如:

root@VM-0-15-ubuntu:/Microheart# docker save -o ubuntu_12.04.tar(文件名) ubuntu(鏡像名) //將ubuntu鏡像載出  root@VM-0-15-ubuntu:/Microheart# docker load -i ./ubuntu_12.04.tar    //載入 Loaded image: ubuntu:12.04

   3.5 移除鏡像

  使用 docker rmi 加上鏡像名,移除鏡像。

相關文章
相關標籤/搜索