轉自:
http://www.java265.com/docker/2022-06-04/3628.html
下文筆者講述Dockerfile的簡介說明,如下所示:
Dockerfile: 是由一系列指令和引數構成的腳本 一個Dockerfile里面包含了構建整個鏡像的完整命令 通過docker build執行Dockerfile中的一系列指令自動構建鏡像
Dockerfile中常見命令簡介
| 命令名稱 | 備注 |
| FROM | 基礎鏡像,FROM命令必須是Dockerfile的首個命令 |
| LABEL | 為鏡像生成元資料標簽資訊,(維護鏡像常用資訊) |
| USER | 指定運行容器時的用戶名或UID,后續RUN也會使用指定用戶 |
| RUN | RUN命令是Dockerfile執行命令的核心部分,它接受命令作為引數并用于創建鏡像,每條RUN命令在當前基礎鏡像上執行,并且會提交一個新鏡像層 |
| WORKDIR | 設定CMD指明的命令的運行目錄,為后續的RUN、CMD、ENTRYPOINT、ADD指令配置作業目錄 |
| ENV | 容器啟動的環境變數 |
| ARG | 構建環境的環境變數(指定Dockerfile的環境變數) |
| COPY | 復制指令,從背景關系目錄中復制檔案或者目錄到容器里指定路徑 |
| CMD | 容器運行時執行的默認命令 |
| ENTRYPOINT | 指定容器的“入口” |
| HEALTHCHECK | 容器健康狀態檢查 |
| ADD,COPY | 功能也類似,不同之處如下: ADD 的優點:在執行 <源檔案> 為 tar 壓縮檔案的話,壓縮格式為 gzip, bzip2 以及 xz 的情況下,會自動復制并解壓到 <目標路徑> ADD 的缺點:在不解壓的前提下,無法復制 tar 壓縮檔案,會令鏡像構建快取失效,從而可能會令鏡像構建變得比較緩慢,具體是否使用,可以根據是否需要自動解壓來決定 |
例
使用docker 創建一個nginx容器
#基于nginx:1.17.9鏡像構建 FROM nginx:1.17.9 #指定資訊 LABEL maintainer="[email protected]" #設定環境變數 ENV NGINX_VERSION 1.17.9 ARG work_pwd=/data/html/ #切換root用戶 USER root #執行命令,安裝curl軟體,設定軟鏈接把nginx服務的日志顯示到終端輸出 RUN apt-get -yq update && apt-get install -y curl && \ ln -sf /dev/stdout /var/log/nginx/access.log && \ ln -sf /dev/stderr /var/log/nginx/error.log #掛載卷 VOLUME ["/data"] #設定作業目錄 WORKDIR $work_pwd #復制index.html 檔案到WORKDIR目錄下, COPY index.html . #映射80埠 EXPOSE 80 #此處 CMD 作為 ENTRYPOINT 的引數, CMD ["nginx", "-g", "daemon off;"] # CMD ["-g", "daemon off;"] # CMD nginx -g daemon off # 設定容器啟動的命令 # ENTRYPOINT ["nginx", '-g", daemon off;"] STOPSIGNAL SIGRTMAX # 檢查容器健康,通過訪問 Nginx 服務80埠,來判斷容器服務是否健康 HEALTHCHECK --interval=5s --timeout=3s \ CMD curl -fs http://localhost/ || exit 1 構建鏡像 docker build -t [$name]:[v1] [DockerfilePath] -t:指定標簽,n為鏡像名,1為版本號
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/486249.html
標籤:Java
