最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

dockerfile制作apache鏡像的方法

 更新時(shí)間:2020年11月26日 15:16:29   作者:zzzf98  
這篇文章主要介紹了dockerfile制作apache鏡像的方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

一、Docker鏡像

 1.1 docker鏡像

應(yīng)用的是發(fā)布的標(biāo)準(zhǔn)格式
支撐一個(gè)docker容器的運(yùn)行

1.2 docker鏡像的創(chuàng)建方法

  • 基于已有的鏡像創(chuàng)建
  • 基于本地模板創(chuàng)建
  • 基于Dockerfile創(chuàng)建

Docker鏡像是分層的結(jié)構(gòu)

在這里插入圖片描述

①Dockerfile中的每個(gè)指令都會(huì)創(chuàng)建一個(gè)新的鏡像層
②鏡像層將被緩存和復(fù)用
③當(dāng)Dockerfile的指令修改了,復(fù)制的文件變化了,或者構(gòu)建鏡像時(shí)指定的變量不同了,對(duì)應(yīng)的鏡像層緩存就會(huì)失效
④某一層的鏡像緩存失效之后,它之后的鏡像層緩存都會(huì)失效
⑤鏡像層是不可變的,如果在某一層中添加一個(gè)文件,然后在下一層中刪除它,則鏡像中依然會(huì)包含該文件

二、基于已有的鏡像創(chuàng)建實(shí)例

將容器里面運(yùn)行的程序及運(yùn)行環(huán)境打包生成新的鏡像

docker commit  選項(xiàng)  容器id  想要?jiǎng)?chuàng)建的鏡像名:標(biāo)簽
-m:說明信息
-a:作者信息
-p:生成過程中停止容器的運(yùn)行

實(shí)例

[root@server1 ~]# docker ps -a #現(xiàn)有容器
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  #創(chuàng)建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
#最好停止容器再創(chuàng)建鏡像

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

通過導(dǎo)入操作系統(tǒng)模板文件生成新的鏡像
使用wget命令導(dǎo)入為本地鏡像

在這里插入圖片描述

[root@server1 ~]# cat debian-7.0-x86-minimal.tar.gz | docker import - daoke:new #導(dǎo)入模板命名鏡像名為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創(chuàng)建

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

文件結(jié)構(gòu):

  • 基礎(chǔ)鏡像信息
  • 維護(hù)者信息
  • 鏡像操作指令
  • 容器啟動(dòng)時(shí)執(zhí)行指令

Dockerfile每行支持一 條指令,每條指令可攜帶多個(gè)參數(shù),支持使用以“#“號(hào)開頭的注釋。

Dockerfile操作指令:

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

實(shí)例

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

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

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

#創(chuàng)建鏡像,必須在當(dāng)前有Dockerfile的目錄下,注意空格加. 代表當(dāng)前目錄
[root@server1 apache]# docker build -t http:centos .
#查看創(chuàng)建的鏡像
[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

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

#查看容器狀態(tài)
[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

關(guān)閉防火墻,測試Apache服務(wù)

在這里插入圖片描述

到此這篇關(guān)于dockerfile制作apache鏡像的方法的文章就介紹到這了,更多相關(guān)dockerfile制作鏡像內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Docker暴露2375端口導(dǎo)致服務(wù)器被攻擊問題及解決方法

    Docker暴露2375端口導(dǎo)致服務(wù)器被攻擊問題及解決方法

    這篇文章主要介紹了Docker暴露2375端口導(dǎo)致服務(wù)器被攻擊問題及解決方法,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-04-04
  • docker安裝RocketMQ的實(shí)現(xiàn)(附填坑經(jīng)驗(yàn)connect to failed)

    docker安裝RocketMQ的實(shí)現(xiàn)(附填坑經(jīng)驗(yàn)connect to failed)

    本文主要介紹了docker安裝RocketMQ(附填坑經(jīng)驗(yàn)connect to failed)
    2024-06-06
  • docker批量加載鏡像的方法實(shí)現(xiàn)

    docker批量加載鏡像的方法實(shí)現(xiàn)

    通常我們批量加載docker鏡像文件的時(shí)候,通常會(huì)寫一個(gè)shell文件,本文就來介紹一下史上最簡單批量加載docker鏡像的方法,感興趣的可以了解一下
    2023-12-12
  • docker部署mysql8并設(shè)置可遠(yuǎn)程連接

    docker部署mysql8并設(shè)置可遠(yuǎn)程連接

    本文主要介紹了docker部署mysql8并設(shè)置可遠(yuǎn)程連接,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • 對(duì)已有的docker容器增加新的端口映射問題(兩種方式)

    對(duì)已有的docker容器增加新的端口映射問題(兩種方式)

    這篇文章主要介紹了對(duì)已有的docker容器增加新的端口映射,在運(yùn)行容器時(shí)指定映射端口運(yùn)行后,如果想要添加新的端口映射,使用兩種方式都可以,需要的朋友可以參考下
    2022-01-01
  • Docker使用阿里加速器安裝centos教程

    Docker使用阿里加速器安裝centos教程

    這篇文章主要介紹了Docker使用阿里加速器安裝centos教程,需要的朋友可以參考下
    2017-04-04
  • Docker容器的概念及Docker容器是干什么的

    Docker容器的概念及Docker容器是干什么的

    Docker容器是一種輕量級(jí)、可移植的虛擬化技術(shù),用于打包、運(yùn)輸和運(yùn)行應(yīng)用程序及其所有依賴項(xiàng),Docker容器使得開發(fā)人員能夠更輕松地構(gòu)建、交付和運(yùn)行應(yīng)用程序,同時(shí)提高了資源利用率和部署的一致性,感興趣的朋友跟隨小編一起看看吧
    2024-02-02
  • Dockerfile文件詳細(xì)介紹

    Dockerfile文件詳細(xì)介紹

    Dockerfile 是一個(gè)文本文件,里面包含組裝新鏡像時(shí)用到的基礎(chǔ)鏡像和各種指令。使用dockerfile 文件來定義鏡像,然后運(yùn)行鏡像,啟動(dòng)容器。本文詳細(xì)介紹了Dockerfile文件,感興趣的小伙伴可以參考一下
    2023-04-04
  • docker容器啟動(dòng)后如何修改或添加端口

    docker容器啟動(dòng)后如何修改或添加端口

    這篇文章主要介紹了docker容器啟動(dòng)后如何修改或添加端口問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-04-04
  • 局域網(wǎng)內(nèi)部署 Docker Registry(推薦)

    局域網(wǎng)內(nèi)部署 Docker Registry(推薦)

    本文將從創(chuàng)建單機(jī)的 Docker Registry 開始,逐步完成局域網(wǎng)內(nèi)可用的 Docker Registry 的創(chuàng)建,并重點(diǎn)解釋如何使用 IP 地址訪問 Registry 的方法
    2017-05-05

最新評(píng)論

西乌| 抚顺市| 长宁县| 项城市| 太白县| 嘉鱼县| 汽车| 健康| 朝阳县| 瑞金市| 伽师县| 大邑县| 台东市| 随州市| 岑巩县| 自治县| 清镇市| 陵水| 沂水县| 乃东县| 科技| 茶陵县| 浪卡子县| 浮山县| 祁门县| 富顺县| 屯门区| 德安县| 上高县| 普格县| 金华市| 九江市| 会昌县| 绥化市| 景洪市| 华池县| 西林县| 韶关市| 丰镇市| 齐河县| 吉木乃县|