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