Dockerfile中指令詳解
Dockerfile是一個文字格式的配置檔案,用於快速建立自定義的映象。
一、基礎結構
Dockerfile有一行行命令語句組成,並支援以# 開頭的註釋行
Dockerfile分為四部分:基礎映象資訊、維護者資訊、映象操作指令和容器啟動時執行的指令
例:
#第一行必須制定基於的基礎映象
FROM ubuntu
#維護者資訊
MAINTAINER docker_user docker_user@email.com
#映象操作
RUN apt-get update && apt-get install -y nginx
#容器啟動時執行
CMD /usr/sbin/nginx
二、Dockerfile中的指令
1.FROM
格式:
FROM <image>
FROM <image>:<tag>
FROM <image>@<digest>
作用:制定基礎映象
格式:
MAINTAINER <name>
3.RUN
格式:
RUN <command> (由shell啟動,Linux預設為`/bin/sh -c`,Windows預設為`cmd /S /C`)
RUN ["executable", "param1", "param2"] (執行可執行檔案)
4.CMD
格式:
CMD ["executable","param1","param2"] (執行可執行檔案,優先)
CMD ["param1","param2"] (設定了ENTRYPOINT,則直接呼叫ENTRYPOINT新增引數)
CMD command param1 param2 (執行shell內部命令)
作用:
指定啟動容器時執行的命令,每個Dockerfile只能有一個CMD命令。如果有多個CMD命令,則只執行最後一條
5.EXPOSE
格式:
EXPOSE <port> [<port>…]
作用:
告訴Docker容器需要暴露的埠號,供互聯絡統使用
6.ENV
格式:
ENV <key> <value>
ENV <key>=<value> ...
作用:
設定環境變數,在容器執行時保持
例:
RUN set -ex && apt-get update && apt-get install -y iputils-ping
ENV PATH /usr/local/bin:$PATH
ENV LANG C.UTF-8
ENV TERM xterm
ENV PYTHON_VERSION 3.5.3
ENV name1=ping name2=on_ip
CMD $name1 $name2
格式:
ADD <src> <dest>
作用:
該命令將複製指定的<src>到容器的<dest>,其中<src>可以是Dockerfile所在目錄的一個相對路徑(檔案或目錄)
8.COPY
格式:
COPY <src> <dest>
作用:
複製本地主機的<src>(Dockerfile所在目錄的相對路徑的檔案或目錄)到容器的<dest>。目標目錄不存在時,會自動建立,與ADD不同的是不會解壓壓縮檔案
9.VOLUMN
格式:
VOLUME ["/data"]
作用:
用於指定持久化目錄,在容器啟動時用-v傳遞引數,例如-v ~/opt/data/mysql:/var/lib/mysql將本機的~/opt/data/mysql和容器內的/var/lib/mysql做持久化關聯
容器啟動時會載入,容器關閉後會回寫。
10.ENTRYPOINT
格式:
ENTRYPOINT ["executable", "param1", "param2"] (可執行檔案, 優先)
ENTRYPOINT command param1 param2 (shell內部命令)
作用:
配置容器,使其可執行化。配合CMD可省去"application",只使用引數。
例:
FROM ubuntu
ENTRYPOINT ["top", "-b"]
CMD ["-c"]
當啟動容器後,你將直接看到相當於執行了top -b -c
要進一步檢視,你可以直接使用命令docker exec -it test ps aux
相當於使用了docker exec top -b -it test ps aux
11. USER
格式:
USER daemon
作用:
指定執行容器時的使用者名稱或uid,後續的RUN、CMD和ENTRYPOINT也會使用指定使用者
12. WORKDIR
格式:
WORKDIR /path/to/workdir
作用:
配置工作目錄
13.ONBUILD
格式:
ONBUILD [INSTRUCTION]
作用:
配置當所建立的映象作為其他新建立映象的基礎映象時,所執行的操作指令。
14. ARG
格式:
ARG parameter_name
作用:
--build-arg
傳遞引數例:
容器啟動時傳參: --build-arg CONT_IMG_VER=v2.0.1
FROM ubuntu
ARG CONT_IMG_VER
另:docker入門,進階和原始碼學習資料pdf(有需要的可留下郵箱)
https://download.csdn.net/download/skh2015java/10246320
相關文章
- Dockerfile指令詳解Docker
- Dockerfile詳解Docker
- Dockerfile 命令詳解Docker
- Dockerfile檔案詳解Docker
- docker容器dockerfile詳解Docker
- Dockerfile常用指令Docker
- 詳解Dockerfile基本語法Docker
- Docker(三):Dockerfile 命令詳解Docker
- Dockerfile - 引數與詳解Docker
- Dockerfile檔案全面詳解Docker
- Apache Dolphin Scheduler - Dockerfile 詳解ApacheDocker
- 解讀三組容易混淆的Dockerfile指令Docker
- Docker的Dockerfile指令Docker
- shell指令碼中/dev/null 2>&1詳解指令碼devNull
- sed指令使用詳解
- nmap指令碼詳解指令碼
- Dockerfile---指令碼自動化Docker指令碼
- Docker - 02 建立映象 Dockerfile 指令速查表Docker
- 『現學現忘』Docker基礎 — 34、DockerFile檔案詳解Docker
- ARMv8的NEON指令詳解
- Dockerfile中相似命令Docker
- 詳解shell中source、sh、bash、./執行指令碼的區別指令碼
- Linux shell程式設計(一)shell指令碼中的變數詳解Linux程式設計指令碼變數
- 千鋒Linux雲端計算教程全套影片合集:Dockerfile詳解(一)LinuxDocker
- 千鋒Linux雲端計算教程全套影片合集:Dockerfile詳解(二)LinuxDocker
- 【Docker】(10)---詳細說說 Dockerfile檔案Docker
- 詳解Linux指令與檔案的搜尋Linux
- Nginx Gzip模組啟用和配置指令詳解Nginx
- 移動IM開發指南2:心跳指令詳解
- linux 路由表設定 之 route 指令詳解Linux路由
- Dockerfile指令與Docker-compose容器編排-搭建docker私有倉庫Docker
- 一文詳解基於指令碼的攻擊指令碼
- VBScript編寫Windows防止鎖屏指令碼程式詳解Windows指令碼
- python中dict詳解Python
- JavaScript中的this詳解JavaScript
- linux中iptables詳解Linux
- Webpack中publicPath詳解Web
- Redis 中 Bitmap 詳解Redis