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
- docker容器dockerfile詳解Docker
- Dockerfile檔案詳解Docker
- DockerFile引數詳解Docker
- 詳解Dockerfile基本語法Docker
- Apache Dolphin Scheduler - Dockerfile 詳解ApacheDocker
- Dockerfile檔案全面詳解Docker
- Docker(三):Dockerfile 命令詳解Docker
- Dockerfile - 引數與詳解Docker
- Dockerfile常用指令Docker
- Docker入門02——Dockerfile詳解Docker
- Dockerfile ,ADD詳細解讀Docker
- 解讀三組容易混淆的Dockerfile指令Docker
- Docker的Dockerfile指令Docker
- DOCKERFILE的CMD指令和ENTRYPOINT指令Docker
- Dockerfile CMD和ENTRYPOINT指令Docker
- Dockerfile ADD和COPY指令Docker
- docker之Dockerfile指令介紹Docker
- shell指令碼中/dev/null 2>&1詳解指令碼devNull
- ASP.NET 中 OutputCache 指令引數詳解ASP.NET
- Dockerfile---指令碼自動化Docker指令碼
- nmap指令碼詳解指令碼
- sed指令使用詳解
- ps aux指令詳解UX
- Dockerfile中相似命令Docker
- ARM指令集詳解
- Docker - 02 建立映象 Dockerfile 指令速查表Docker
- Dockerfile 第4關:ENV、EXPOSE、WORKDIR、ARG指令Docker
- Dockerfile 第5關:ONBUILD和VOLUME指令DockerUI
- 『現學現忘』Docker基礎 — 34、DockerFile檔案詳解Docker
- <linux下sysctl指令詳解>Linux
- Shell指令碼之sed詳解指令碼
- 詳解shell中source、sh、bash、./執行指令碼的區別指令碼
- ARMv8的NEON指令詳解
- 千鋒Linux雲端計算教程全套影片合集:Dockerfile詳解(一)LinuxDocker
- 千鋒Linux雲端計算教程全套影片合集:Dockerfile詳解(二)LinuxDocker