指令 | 解釋 |
---|---|
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制作apache鏡像的方法的文章就介紹到這了,更多相關dockerfile制作鏡像內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!