ARG跟ENV均可以定義變量,不一樣在於ARG在構建期結束時是銷燬,而ENV定義的是系統中的環境變量,不會在構建結束時銷燬,在之後的構建中直接使用。bash
當ARG和ENV定義相同名稱的變量時,ENV定義的值會覆蓋ARG定義的值。blog
WORKDIR 後面能夠跟相對路徑和絕對路徑,而且能夠屢次調用。當多個相對路徑屢次調用時:class
WORKDIR /a WORKDIR b WORKDIR c RUN pwd
會輸出:/a/b/c 變量
WORKDIR 能夠解析Dockerfile文件中ENV指令定義的路徑,固然也能夠解析ARG定義的路徑,只是須要注意的是不要和環境變量重名,而且須要在同一Dockerfile文件。file