天天看點

DockerFile建立一個鏡像過程

在/chentest/檔案夾裡建立一個dockerfile,内容如下:

1

2

3

4

5

<code>FROM ubuntu:14.04</code>

<code>MAINTAINER Chris Chan </code><code>"[email protected]"</code>

<code>RUN apt-get update &amp;&amp; apt-get </code><code>install</code> <code>-y nginx</code>

<code>RUN </code><code>echo</code> <code>"自由上司人民!"</code> <code>&gt; </code><code>/usr/share/nginx/html/index</code><code>.html</code>

<code>EXPOSE 80</code>

然後在/chentest裡執行這個dockerfile,指令是# docker build -t="chenchen01/svs_batman" .,注意後面這個點,這個點是“目前檔案夾”的意思,也就是說dockerfile是在目前檔案夾裡,由于我國的國情,可能會有這樣的情況出現:

<a href="http://s3.51cto.com/wyfs02/M00/8A/D5/wKiom1g87aXz6vXRAACOJmN9qNE653.png" target="_blank"></a>

但是不要怕,重新再來過可能就會好了。如果還不行,就多試幾次,然後會出現一連串的字元,也會生成一連串的鏡像,如果正常的話,就會出現“Successfully built 鏡像号”。

<a href="http://s5.51cto.com/wyfs02/M02/8A/D1/wKioL1g87sDAdS5VAAFGdHy2a3o508.png" target="_blank"></a>

可見“自由上司人民”這句話已經被寫入了我們計劃中的index.html裡。

如果我們不是yum安裝開源工具,而是公司自己的子產品,那麼也可以使用dockerfile進行制作鏡像,在這裡我們用mrs和zkclient為例子。

首先在/chentest裡建立一個檔案夾,比如叫mrstest,裡面有mrs和zkclint兩個子檔案夾。然後再把這個mrstest進行打包,名字叫mrstest.tar.gz。如圖:

<a href="http://s3.51cto.com/wyfs02/M02/8A/E3/wKioL1g-kAKy5UR-AAA-ANKWy10941.png" target="_blank"></a>

這個時候,來修改一下Dockerfile,内容如下:

6

7

8

<code>FROM centos:7</code>

<code>RUN </code><code>mkdir</code> <code>/mnt/hswx</code>      <code>#建立一個hswx的檔案夾</code>

<code>ADD mrstest.</code><code>tar</code><code>.gz </code><code>/mnt/hswx</code>    <code>#ADD是把目前檔案夾的檔案複制到hswx檔案夾裡,同時拆包解壓縮</code>

<code>RUN yum update &amp;&amp; yum </code><code>install</code> <code>-y vim*    </code><code>#預設是不帶vim的,這裡安裝一個</code>

<code>RUN </code><code>echo</code> <code>"自由上司人民!"</code> <code>&gt; </code><code>/mnt/hswx/index</code><code>.html  </code><code>#同樣這裡家一句話</code>

<code>EXPOSE 9030</code>

<code>EXPOSE 2181</code>

然後就依照這個東東,制作一個叫"stevencurry/gotowin"的鏡像,指令是 # docker build -t="stevencurry/gotowin" .。然後會就會出現一步又一步的程序,最後出現“Successfully built 38d8ef9229fc”,我們這個編号為38d8ef9229fc的"stevencurry/gotowin"鏡像成功了。

于是可以驗證一下,如圖:

<a href="http://s4.51cto.com/wyfs02/M02/8A/E3/wKioL1g-mw7ji_hjAAFf5oRRPTA514.png" target="_blank"></a>

可見vim 也好使了,但是要注意,vim這裡還是不識别中文,打開的話是亂碼,這裡還需要進一步改進。

docker查詢容器指令:docker ps -a

docker删除容器指令:docker rm 容器名/容器編号

docker查詢鏡像指令:docker images

eocker删除鏡像指令:docker rmi 容器名

 本文轉自 蘇幕遮618 51CTO部落格,原文連結:http://blog.51cto.com/chenx1242/1877621