您好,登錄后才能下訂單哦!
Docker鏡像創建方法 創建鏡像的方法有三種,分別是基于已有的鏡像創建、基于本地模板創建、基于Dockerfile 創建,下面著重介紹這三種創建鏡像的方法。
首先將鏡像加載到容器,將容器里面運行的程序及運行環境打包起來生成新的鏡像,需要記住該容器的ID號。
命令格式: docker commit 【選項】 容器ID/名稱 倉庫名稱:【標簽】
常用選項:
-m:說明信息 ?
-a:作者信息 ?
-p:生成過程中停止容器的運行
docker create -it nginx /bin/bash #啟動容器
docker ps -a #查看容器
docker commit -m "new" -a "zhao" 6f69698fc083 nginx:test #創建新鏡像
docker images #查看鏡像
通過導入系統模板文件可以生成鏡像,模板可以從OPENVZ開源項目下載
下載地址為:http://download.openvz.org/template/precreated
下面以debian模板壓縮包導入為本地鏡像的例子。
wget http://download.openvz.org/template/precreated/debian-7.0-x86-minimal.tar.gz
cat debian-7.0-x86-minimal.tar.gz | docker import - nginx:new
Dockerfile是由一組指令組成的文件,每條指令對應linux中一條命令,Docker程序將讀取Dockerfile中的指令生成指定鏡像。
Dockerfile大致結構:基礎鏡像信息、維護者信息、鏡像操作指令、容器啟動時執行指令。每行支持一條指令,每條指令可以攜帶多個參數,支持以 # 開頭的注釋。
Dockerfile操作指令:
FROM 鏡像 : 指定新的鏡像所基于的鏡像
MAINTAINER 名字 :說明新鏡像的維護人
RUN 命令 : 在所基于的鏡像上執行命令,并提交到新的鏡像中
CMD ["要運行的程序","參數1","參數2"] : 指定啟動容器時要運行的命令或腳本
EXPOSE端口號 : 指定新鏡像加載到Docker時要開啟的端口
ENV環境變量 變量值 : 設置一個環境變量的值,會背后面的RUN用到
ADD源文件/目錄 目標文件/目錄 :將源文件復制到目標文件 ,源文件和Dockerfile位于同一目錄
COPY源文件/目錄 目標文件/目錄 :將本地主機的源文件復制到目標目錄,源文件和Dockerfile位于同一目錄
VOLUME["目錄"] : 在容器中創建一個掛載點
USER 用戶名 /UID :指定運行容器時的用戶
WORKDIR路徑 : 為后續的RUN 、CMD、ENTRYPOINT 指定工作目錄
ONBUILD命令 : 指定所生成的鏡像作為一個基礎鏡像時所要運行的命令。
mkdir httpd 創建目錄
cd httpd #切換目錄
vim Dockerfile #編寫dockerfile
#基于基礎鏡像
FROM centos
#用戶信息
MAINTAINER this is httpd image <zhao>
#添加環境包
RUN yum install -y httpd
#指定http端口
EXPOSE 80
#添加宿主機中run.sh到容器中
ADD run.sh /run.sh
RUN chmod 755 /run.sh
CMD ["/run.sh"]
vim run.sh #編寫httpd啟動腳本
#!/bin/bash
rm -rf /run/httpd/*
exec /usr/sbin/apachectl -D FOREGROUND
docker build -t httpd:new . #創建新鏡像(不要忘了末尾的有 .)
docker run -d -p 80:80 httpd:new #啟動鏡像
docker ps #查看
網頁驗證
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。