中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

apache鏡像怎么利用dockerfile制作

發布時間:2020-11-27 13:55:50 來源:億速云 閱讀:181 作者:Leah 欄目:開發技術

這期內容當中小編將會給大家帶來有關apache鏡像怎么利用dockerfile制作,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

一、Docker鏡像

 1.1 docker鏡像

應用的是發布的標準格式
支撐一個docker容器的運行

1.2 docker鏡像的創建方法

  • 基于已有的鏡像創建

  • 基于本地模板創建

  • 基于Dockerfile創建

Docker鏡像是分層的結構

apache鏡像怎么利用dockerfile制作

①Dockerfile中的每個指令都會創建一個新的鏡像層
②鏡像層將被緩存和復用
③當Dockerfile的指令修改了,復制的文件變化了,或者構建鏡像時指定的變量不同了,對應的鏡像層緩存就會失效
④某一層的鏡像緩存失效之后,它之后的鏡像層緩存都會失效
⑤鏡像層是不可變的,如果在某一層中添加一個文件,然后在下一層中刪除它,則鏡像中依然會包含該文件

二、基于已有的鏡像創建實例

將容器里面運行的程序及運行環境打包生成新的鏡像

docker commit  選項  容器id  想要創建的鏡像名:標簽
-m:說明信息
-a:作者信息
-p:生成過程中停止容器的運行

實例

[root@server1 ~]# docker ps -a #現有容器
CONTAINER ID    IMAGE        COMMAND       CREATED       STATUS       PORTS        NAMES
86cf506635da    centos:7      "/bin/bash"     6 seconds ago    Up 5 seconds              nervous_shockley
[root@server1 ~]# docker commit -m "image" -a "zf" -p 86cf506635da docker:new  #創建docker:new鏡像
sha256:e3056b40acd772abc9a39c6c4f3cb42ba119eb9392b32fb275414f00e82d55b2
[root@server1 ~]# docker images #查看生成的鏡像
REPOSITORY     TAG         IMAGE ID      CREATED       SIZE
docker       new         e3056b40acd7    9 seconds ago    267MB
centos       7          4f280dc8c807    21 hours ago    267MB
#最好停止容器再創建鏡像

三、基于本地模板創建

通過導入操作系統模板文件生成新的鏡像
使用wget命令導入為本地鏡像

apache鏡像怎么利用dockerfile制作

[root@server1 ~]# cat debian-7.0-x86-minimal.tar.gz | docker import - daoke:new #導入模板命名鏡像名為daoke:new
[root@server1 ~]# docker images #查看生成的鏡像
REPOSITORY     TAG         IMAGE ID      CREATED       SIZE
daoke        new         61b2d8af0457    38 seconds ago   215MB
docker       new         e3056b40acd7    10 minutes ago   267MB
centos       7          4f280dc8c807    22 hours ago    267MB

四、基于Dockerfile創建

Dockerfile是由一組指令組成的文件。

文件結構:

  • 基礎鏡像信息

  • 維護者信息

  • 鏡像操作指令

  • 容器啟動時執行指令

Dockerfile每行支持一 條指令,每條指令可攜帶多個參數,支持使用以“#“號開頭的注釋。

Dockerfile操作指令:


指令解釋
FROM 鏡像指定新鏡像所基于的鏡像,第一條指令必須為FROM指令 ,
MAINTAINER名字說明新鏡像的維護人信息
RUN 命令在所基于的鏡像上執行命令,并提交到新的鏡像中
CMD [ "要運行的程序”,”參數1,"參數2 "]指令啟動容器時要運行的命令或者腳本,Dockerfile只能有一條CMD命令,如果指定多條則只能最后一條被執行
EXPOSE 端口號暴露鏡像端口號,方便運行鏡像和提供服務時,映射給外部節點使用
ENV 環境變量變量值設置一個環境變量的值,會被后面的RUN使用
ADD 源文件/目錄 目標文件/目錄從宿主機復制文件到容器,如果是壓縮包并進行解壓,源文件要與Dockerfile同一目錄
COPY源文件/目錄目標文件/目錄將本地主機上的文件/目錄復制到目標地點,源文件/目錄要與Dockerfile在相同的目錄中
VOLUME [“目錄"]在容器中創建一個掛載點
USER用戶名/UID指定運行容器時的用戶
WORKDIR路徑為后續的RUN、CMD、ENTRYPOINT指定 工作目錄,相當于cd
ONBUILD命令指定所生成的鏡像作為一個基礎鏡像時所要運行的命令
HEALTHCHECK健康檢查

實例

[root@server1 ~]# mkdir apache #建立鏡像目錄
[root@server1 ~]# cd apache/

#創建Dockerfile
[root@server1 apache]# vi Dockerfile 
FROM centos:7 #基于的基礎鏡像,在centos內核運行
MAINTAINER this is zzf web #維護者信息
RUN yum -y update  
RUN yum -y install httpd
EXPOSE 80  #開啟80端口,給外部映射用
ADD index.html /var/www/html/index.html #將宿主機網站文件加入到鏡像內
ADD run.sh /run.sh #將執行腳本復制到鏡像內
RUN chmod 755 /run.sh #提權
CMD ["/run.sh"] #啟動容器時執行腳本,開啟Apache服務

#當前目錄里創建index.html和run.sh
[root@server1 apache]# vi run.sh 
#!/bin/bash
rm -rf /run/httpd/* 
exec /usr/sbin/apachectl -D FOREGROUND #啟動容器時啟動服務
[root@server1 apache]# vi index.html 
hello

#創建鏡像,必須在當前有Dockerfile的目錄下,注意空格加. 代表當前目錄
[root@server1 apache]# docker build -t http:centos .
#查看創建的鏡像
[root@server1 apache]# docker images
REPOSITORY     TAG         IMAGE ID      CREATED       SIZE
http        centos       5db0e8103d54    5 minutes ago    539MB
daoke        new         61b2d8af0457    33 minutes ago   215MB
docker       new         e3056b40acd7    43 minutes ago   267MB
centos       7          4f280dc8c807    22 hours ago    267MB

#運行鏡像為容器
-p 為映射端口,將容器端口80映射為宿主主機端口1212(必須是未被占用的)
-P 不指定節點端口,隨機指定端口,默認從32168端口開始分配
[root@server1 apache]# docker run -d -p 1212:80 http:centos  

#查看容器狀態
[root@server1 apache]# docker ps -a
CONTAINER ID    IMAGE        COMMAND       CREATED       STATUS       PORTS         NAMES
a8fa8ae6be42    http:centos     "/run.sh"      3 minutes ago    Up 3 minutes    0.0.0.0:1212->80/tcp  xenodochial_franklin
86cf506635da    centos:7      "/bin/bash"     48 minutes ago   Up 48 minutes               nervous_shockley

上述就是小編為大家分享的apache鏡像怎么利用dockerfile制作了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

监利县| 白水县| 静宁县| 安宁市| 太原市| 鞍山市| 阳原县| 航空| 华阴市| 隆回县| 赣榆县| 清苑县| 开远市| 龙泉市| 沙田区| 庐江县| 日土县| 兰西县| 云浮市| 巧家县| 丰台区| 巴里| 建宁县| 湛江市| 神木县| 阿勒泰市| 浮山县| 娱乐| 新绛县| 新乐市| 和顺县| 礼泉县| 信阳市| 明光市| 扎兰屯市| 于田县| 宁明县| 东海县| 江华| 攀枝花市| 平南县|