Docker映象的構成__Dockerfile

OldBoy~發表於2017-08-28

相比docker commit來說,Dockerfile的方法會更加自動化,更加方便快捷,而且功能也更強大。拿構建Nginx容器舉例。

先建立一個目錄

mkdir /opt/docker-file

進入目錄

cd /opt/docker-file/

然後建立一個nginx目錄並進入,建立一個Dockerfile檔案並寫入一些命令

cd nginx
vim Dockerfile
#This is my docker file

#Version 1 
#Auth Wt

#Base
FROM centos                           #基礎映象是centos,後面跟有效的映象名(如果該映象你的本地倉庫沒有則會從遠端倉庫Pull取)。後面的指令在些映象中執行
MAINTAINER wt                            #告訴別人,是誰建立的(維護者資訊)
ADD pcre-8.39.tar.gz /usr/local/src               #打包一些檔案(這裡是下載好之後的,下載好的檔案必須也是同級目錄,這裡使用ADD命令,如果是一個壓縮包不需要解壓命令,它會自動幫我們解壓)
ADD nginx-1.13.4.tar.gz /usr/local/src
RUN yum install -y wget gcc gcc-c++ make openssl-devel   #執行一些系統命令,每一條RUN指令(可能會有多條linux命令)會在當前容器最上面的可讀寫層執行並且提交成一個新的映象層,接下來的指令會在這個新的鏡
像層裡執行。 RUN useradd
-s /sbin/nologin -M www WORKDIR /usr/local/src/nginx-1.13.4            #進入指定目錄工作。 RUN ./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_ssl_module --with-http_stub_status_module --with-pcre=/usr/local/src/pcre-8.39 && make && make install RUN echo "daemon off;" >> /usr/local/nginx/conf/nginx.conf     #修改nginx自啟動 ENV PATH /usr/local/nginx/sbin:$PATH EXPOSE 80                                 #指定容器對外暴露的埠號。 CMD ["nginx"]                            #指定你製作出來的映象在啟動成容器時執行命令的預設的引數。

Dockerfile 寫完之後開始構建

docker build -t nginx-file:v1 /opt/docker-file/nginx

接下來就可以看到每一步的操作了,每一步都有一個ID,都是一個層級。

最後訪問宿主機的IP就可以看到Nginx的歡迎介面了。

當然此案例只是一個入門,做到更深入全面的操作還需要更多的實際專案參與。

 

相關文章