亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

dockerfile制作apache鏡像的方法

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

一、Docker鏡像

 1.1 docker鏡像

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

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

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

Docker鏡像是分層的結構

在這里插入圖片描述

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

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

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

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

實例

[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)建

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

在這里插入圖片描述

[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創(chuàng)建

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

文件結構:

  • 基礎鏡像信息
  • 維護者信息
  • 鏡像操作指令
  • 容器啟動時執(zhí)行指令

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

Dockerfile操作指令:

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

實例

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

#創(chuàng)建Dockerfile
[root@server1 apache]# vi Dockerfile 
FROM centos:7 #基于的基礎鏡像,在centos內(nèi)核運行
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 #將宿主機網(wǎng)站文件加入到鏡像內(nèi)
ADD run.sh /run.sh #將執(zhí)行腳本復制到鏡像內(nèi)
RUN chmod 755 /run.sh #提權
CMD ["/run.sh"] #啟動容器時執(zhí)行腳本,開啟Apache服務

#當前目錄里創(chuàng)建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

#創(chuàng)建鏡像,必須在當前有Dockerfile的目錄下,注意空格加. 代表當前目錄
[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

#運行鏡像為容器
-p 為映射端口,將容器端口80映射為宿主主機端口1212(必須是未被占用的)
-P 不指定節(jié)點端口,隨機指定端口,默認從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

關閉防火墻,測試Apache服務

在這里插入圖片描述

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

相關文章

  • Docker 網(wǎng)絡命令詳解

    Docker 網(wǎng)絡命令詳解

    這篇文章主要詳細介紹了Docker 網(wǎng)絡命令的相關資料,需要的朋友可以參考下
    2017-06-06
  • Linux Docker阿里云鏡像倉庫失效的解決

    Linux Docker阿里云鏡像倉庫失效的解決

    作者分享了在VmWare安裝的Linux7中,通過yum安裝的docker無法pull鏡像的問題解決經(jīng)驗,首先,他檢查了網(wǎng)絡是否通暢,然后設置了阿里云鏡像加速地址,但仍然無法pull鏡像,接下來,他查看了docker是否成功設置鏡像地址,并查看了docker日志
    2024-10-10
  • 快速使用docker-compose部署clickhouse的教程

    快速使用docker-compose部署clickhouse的教程

    ClickHouse 的工作速度比傳統(tǒng)方法快 100-1000 倍。它適用于大數(shù)據(jù)、業(yè)務分析和時間序列數(shù)據(jù)。在這個小教程中,我將向您展示如何以最少的設置安裝 ClickHouse,感興趣的朋友一起看看吧
    2021-11-11
  • docker容器重啟錯誤的解決方案

    docker容器重啟錯誤的解決方案

    本文主要介紹了docker容器重啟錯誤的解決方案,詳細的介紹了docker 重啟錯誤的原因及其解決方法,具有一定的參考價值,感興趣的可以了解一下
    2024-07-07
  • Docker?Desktop?啟用?Kubernetes?失敗后處理方案

    Docker?Desktop?啟用?Kubernetes?失敗后處理方案

    ?在setting -> Kubernetes 中,選中 Enable Kubernetes 后,長時間顯示 Starting ...? ,在Images中顯示幾個自動下載的鏡像后,顯示 Start Kubernetes failed,這篇文章主要介紹了Docker?Desktop啟用Kubernetes失敗后處理方法,需要的朋友可以參考下
    2023-08-08
  • Docker如何配置Redis容器持久化

    Docker如何配置Redis容器持久化

    這篇文章主要介紹了Docker如何配置Redis容器持久化問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • python腳本在docker上運行的方法

    python腳本在docker上運行的方法

    在本篇文章里小編給各位分享的是關于python腳本在docker上運行的方法內(nèi)容,有需要的朋友們可以學習下。
    2020-03-03
  • Docker容器服務編排利器詳解

    Docker容器服務編排利器詳解

    這篇文章主要介紹了Docker容器服務編排利器,主要包括使用使用Docker?Compose必要性及定義及一些Docker?Compose應用參考資料,本文給大家介紹的非常詳細,需要的朋友可以參考下
    2022-07-07
  • windows10下安裝docker且使用wsl2安裝雙系統(tǒng)并構建最小jre鏡像和應用鏡像

    windows10下安裝docker且使用wsl2安裝雙系統(tǒng)并構建最小jre鏡像和應用鏡像

    這篇文章主要給大家介紹了windows10下安裝docker且使用wsl2安裝雙系統(tǒng)并構建最小jre鏡像和應用鏡像的流程步驟,文中有詳細的圖文介紹,需要的朋友可以參考下
    2023-08-08
  • Docker容器如何開啟特權模式

    Docker容器如何開啟特權模式

    文章主要解決Docker容器中無法使用systemctl命令的問題,其原因在于大部分的系統(tǒng)鏡像移除了init軟件包,導致鏡像中沒有/sbin/init文件,解決方法是通過編寫Dockerfile文件修改鏡像,構建新的鏡像,并運行新構建的鏡像,需要注意的是,開啟特權模式雖然方便,但可能存在安全風險
    2024-10-10

最新評論