Docker 學習筆記 (2)

查找鏡像
  1.我們可以從 Docker Hub 網站來搜索鏡像,Docker Hub 網址爲https://hub.docker.com/

  2.我們也可以使用 docker search 命令來搜索鏡像。比如我們需要一個 httpd 的鏡像來作爲我們的 web 服務。我們可以通過 docker search 命令搜索 httpd 來尋找適合我們的鏡像。
    docker search httpd
    點擊圖片查看大圖:



    NAME: 鏡像倉庫源的名稱

    DESCRIPTION: 鏡像的描述

    OFFICIAL: 是否 docker 官方發佈

    stars: 類似 Github 裏面的 star,表示點贊、喜歡的意思。

    AUTOMATED: 自動構建。


創建鏡像
  當我們從 docker 鏡像倉庫中下載的鏡像不能滿足我們的需求時,我們可以通過以下兩種方式對鏡像進行更改。
    1、從已經創建的容器中更新鏡像,並且提交這個鏡像
    2、使用 Dockerfile 指令來創建一個新的鏡像
    示例1.更新鏡像      更新鏡像之前,我們需要使用鏡像來創建一個容器。
     docker run -t -i ubuntu:15.10 /bin/bash      root@e218edb10161:/#      在運行的容器內使用 apt-get update 命令進行更新。      在完成操作之後,輸入 exit 命令來退出這個容器。      此時 ID 爲 e218edb10161 的容器,是按我們的需求更改的容器。我們可以通過命令 docker commit 來提交容器副本。      docker commit -m="has update" -a="admin" e218edb10161 runoob/ubuntu:v2      sha256:70bf1840fd7c0d2d8ef0a42a817eb29f854c1af8f7c59fc03ac7bdee9545aff8      各個參數說明:       -m: 提交的描述信息       -a: 指定鏡像作者
      e218edb10161:容器 ID       runoob/ubuntu:v2: 指定要創建的目標鏡像名      我們可以使用 docker images 命令來查看我們的新鏡像 runoob/ubuntu:v2:       docker images       REPOSITORY TAG IMAGE ID CREATED SIZE       runoob/ubuntu v2 70bf1840fd7c 15 seconds ago 158.5 MB       ubuntu 15.10 4e3b13c8a266 4 weeks ago 136.3 MB     示例2.構建鏡像       我們使用命令 docker build , 從零開始來創建一個新的鏡像。爲此,我們需要創建一個 Dockerfile 文件,其中包含一組指令來告訴 Docker 如何構建我們的鏡像。       cat Dockerfile         FROM centos:6.7         MAINTAINER Fisher "[email protected]"         RUN /bin/echo 'root:123456' |chpasswd         RUN useradd runoob         RUN /bin/echo 'runoob:123456' |chpasswd         RUN /bin/echo -e "LANG=\"en_US.UTF-8\"" >/etc/default/local         EXPOSE 22         EXPOSE 80         CMD /usr/sbin/sshd -D
      每一個指令的前綴都必須是大寫的。

      注意:Dockerfile 的指令每執行一次都會在 docker 上新建一層。所以過多無意義的層,會造成鏡像膨脹過大。例如:
        FROM centos
        RUN yum install wget
        RUN wget -O redis.tar.gz "http://download.redis.io/releases/redis-5.0.3.tar.gz"
        RUN tar -xvf redis.tar.gz

        以上執行會創建 3 層鏡像。可簡化爲以下格式:

        FROM centos
        RUN yum install wget \
            && wget -O redis.tar.gz "http://download.redis.io/releases/redis-5.0.3.tar.gz" \
            && tar -xvf redis.tar.gz

        如上,以 && 符號連接命令,這樣執行後,只會創建 1 層鏡像。
      第一條FROM,指定使用哪個鏡像源       RUN 指令告訴docker 在鏡像內執行命令,安裝了什麼。。。       然後,我們使用 Dockerfile 文件,通過 docker build 命令來構建一個鏡像。       docker build -t runoob/centos:6.7 .
        Sending build context to Docker daemon 17.92 kB         Step 1 : FROM centos:6.7         ---> d95b5ca17cc3         Step 2 : MAINTAINER Fisher "[email protected]"          ---> Using cache         ---> 0c92299c6f03         Step 3 : RUN /bin/echo 'root:123456' |chpasswd          ---> Using cache          ---> 0397ce2fbd0a         Step 4 : RUN useradd runoob         ......
      參數說明:       -t :指定要創建的目標鏡像名       . :Dockerfile 文件所在目錄,可以指定Dockerfile 的絕對路徑       使用docker images 查看創建的鏡像已經在列表中存在,鏡像ID爲860c279d2fec       docker images         REPOSITORY TAG IMAGE ID CREATED SIZE         runoob/centos 6.7 860c279d2fec About a minute ago 190.6 MB
設置鏡像標籤   我們可以使用 docker tag 命令,爲鏡像添加一個新的標籤。     docker tag 860c279d2fec runoob/centos:dev     docker tag 鏡像ID,這裏是 860c279d2fec ,用戶名稱、鏡像源名(repository name)和新的標籤名(tag)。     使用 docker images 命令可以看到,ID爲860c279d2fec的鏡像多一個標籤。       docker images         REPOSITORY TAG IMAGE ID CREATED SIZE         runoob/centos 6.7 860c279d2fec 5 hours ago 190.6 MB         runoob/centos dev 860c279d2fec 5 hours ago 190.6 MB

  

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章