溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

怎么創(chuàng)建Docker鏡像

發(fā)布時間:2020-05-29 19:27:00 來源:億速云 閱讀:222 作者:鴿子 欄目:系統(tǒng)運維

Docker 鏡像創(chuàng)建方法

Docker鏡像創(chuàng)建方法 創(chuàng)建鏡像的方法有三種,分別是基于已有的鏡像創(chuàng)建、基于本地模板創(chuàng)建、基于Dockerfile 創(chuàng)建,下面著重介紹這三種創(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  #查看鏡像

怎么創(chuàng)建Docker鏡像

二、基于本地模板創(chuàng)建

通過導(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創(chuàng)建(重點)

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ǔ)鏡像時所要運行的命令。

Dockerfile例子:

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   #查看

怎么創(chuàng)建Docker鏡像

怎么創(chuàng)建Docker鏡像

怎么創(chuàng)建Docker鏡像

網(wǎng)頁驗證

怎么創(chuàng)建Docker鏡像

向AI問一下細(xì)節(jié)

免責(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)容。

AI