1. 程式人生 > >registry --------->倉庫 ----------------->映象

registry --------->倉庫 ----------------->映象

  registry --------->倉庫 ----------------->映象
  
  本地映象都儲存在宿主機下 :
  
  /var/lib/docker/containers
  
  映象從倉庫下載下來.映象儲存在倉庫中,而倉庫存在於Registry中.
  
  Docker Hub 中有兩種型別的倉庫:
  
  使用者庫:
  
  使用者倉庫的映象都是有docker使用者建立的;
  
  使用者倉庫的命名由使用者名稱和倉庫名兩部分組成,如scrapinghub/splash
  
  頂層倉庫
  
  頂層倉庫則是由docker內部人員來管理的;
  
  頂層倉庫只包含倉庫名的部分,如centos倉庫.
  
  頂層倉庫中的映象時架構良好,安全且是最新的.
  
  用do…
  
  docker使用
  
  1.拉取映象
  
  docker pull centos
  
  1
  
  2.從centos映象 建立一個容器
  
  docker run -i -t centos /bin/bash
  
  1
  
  3.用Dockerfile構建映象
  
  建立一個包含Dockerfile檔案,Docker在建立映象構建上下文,並將該檔案所在目錄下的所有檔案上傳到docker守護程序.
  
  touch /root/docker_demo/Dockerfile
  
  1
  
  構建映象的執行流程:
  
  Docker從基礎映象執行一個容器
  
  執行一條指令,對容器做出修改
  
  執行類似 docker commit的操作,提交一個新的映象層
  
  Docer再基於剛提交的映象執行一個容器
  
  執行Dockerfile中的下一條指令,直到所有指令都執行完畢
  
  # 示例
  
  # version: 0.0.1
  
  # 每條指令必須大寫如FROM
  
  # 執行順序從上到下執行
  
  # 每條指令都會建立一個新的映象並對映象進行提交
  
  FROM ubuntu:14.04 # 第一條指令都應該是FROM,FROM指令指定一個已經存在的映象,後續指令都基於該映象進行,這個映象稱為基礎映象
  
  #MAINTAINER James Turnbull "www.gcyl152.com

[email protected]" #指定該映象的作者是誰,以及郵件地址
  
  RUN apt-get update #在當前映象中執行指定命令,跟新倉庫
  
  RUN apt-get install -y nginx www.michenggw.com # 當前映象中安裝nginx
  
  #RUN echo "Hi,I am www.meiwanyule.cn in your container' /usr/share/nignx/html/index.html # 建立html檔案
  
  EXPOSE 80 # 告訴Docker該容器內的應用程式將會使用容器的指定埠80,可以指定多個EXPOSE指令 來向外部公開多個埠
  
  # EXPOSE 指令可以用來幫助多個容器連結

  
  根據Dockerfile構建映象
  
  docker build -t='psd/test:v1' . # -t設定倉庫 名字和名稱 v1 為標籤
  
  1
  
  Docker Image的釋出
  
  方法1 Save Image To TarBall 儲存為tar包
  
  docker save to -o centos-myname-nginx.tar centos:nginx
  
  # centos-myname-nginx.tar表示匯出映象的名字
  
  # centos:nginx 表示原來映象的名字
  
  docker load -i centos-myname-nginx.tar # 表示匯入本地映象

  
  方法2 Push Image To Docker Hub
  
  # 步驟1:註冊一個賬號 https://hub.docker.com/
  
  # 步驟2:登入
  
  docker login -u userabc -p abc-123 -e [email protected] # -u 使用者名稱 -p 密碼 -e 電子郵件
  
  # 步驟3:上傳映象
  
  docker pysh centos:nginx
  
  # 步驟4:下載映象
  
  docker pull userabc/centos:nginx
  

  
  docker run -d -p 80:80 userabc/centos /bin/bash -c /usr/local/bin/star.sh # -p 物理機的80埠:容器的例項的80,