Docker 學習3 構建鏡像

簡單介紹

  • registry --------->倉庫 ----------------->鏡像
  • 本地鏡像都保存在宿主機下 :
    /var/lib/docker/containers
  • 鏡像從倉庫下載下來.鏡像保存在倉庫中,而倉庫存在於Registry中.
  • Docker Hub 中有兩種類型的倉庫:
    • 用戶庫:
      用戶倉庫的鏡像都是有docker用戶創建的;
      用戶倉庫的命名由用戶名和倉庫名兩部分組成,如scrapinghub/splash
    • 頂層倉庫
      頂層倉庫則是由docker內部人員來管理的;
      頂層倉庫只包含倉庫名的部分,如centos倉庫.
      頂層倉庫中的鏡像時架構良好,安全且是最新的.
  • 用do…

docker使用

1.拉取鏡像

	docker pull centos

2.從centos鏡像 創建一個容器

docker run -i -t centos /bin/bash

3.用Dockerfile構建鏡像

  • 創建一個包含Dockerfile文件,Docker在創建鏡像構建上下文,並將該文件所在目錄下的所有文件上傳到docker守護進程.
    touch /root/docker_demo/Dockerfile 	
    
  • 構建鏡像的執行流程:
    • Docker從基礎鏡像運行一個容器
    • 執行一條指令,對容器做出修改
    • 執行類似 docker commit的操作,提交一個新的鏡像層
    • Docer再基於剛提交的鏡像運行一個容器
    • 執行Dockerfile中的下一條指令,直到所有指令都執行完畢
    # 示例
    # version: 0.0.1
    # 每條指令必須大寫如FROM
    # 執行順序從上到下執行
    # 每條指令都會創建一個新的鏡像並對鏡像進行提交
    FROM ubuntu:14.04 # 第一條指令都應該是FROM,FROM指令指定一個已經存在的鏡像,後續指令都基於該鏡像進行,這個鏡像稱爲基礎鏡像
    #MAINTAINER James Turnbull "[email protected]" #指定該鏡像的作者是誰,以及郵件地址
    RUN	apt-get update #在當前鏡像中運行指定命令,跟新倉庫
    RUN apt-get install -y nginx # 當前鏡像中安裝nginx
    #RUN echo "Hi,I am 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 爲標籤
    
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章