$ mkdir static_web $ cd static_web $ touch Dockerfile
# Version 0.0.1 FROM ubuntu:14.04 MAINTAINER Hadeian "hadeian@example.com" RUN apt-get update && apt-get install nginx -y RUN echo 'Hi, I am in your container.' > /usr/share/nginx/html/index.html EXPOSE 80
cd static_web # 在構建時爲鏡像設置標籤 # 構建時會將當前上下文上傳到docker守護進程 docker build -t "test/static_web:v1" . # 從git倉庫構建docker鏡像 docker build -t "test/static_web:v1" git@github.com:test/docker-static_web
Dockerfile指令含義:html
指令 | 含義 |
---|---|
FROM | 第一條指令必須是FROM,用於指定基礎鏡像。 |
MAINTAINER | 該指令會告訴docker做者的信息。 |
RUN | 在容器中運行指定命令,每個RUN指令都會建立一個鏡像層,執行成功後,會將此鏡像層提交,而後繼續執行下一條指令。 |
EXPOSE | 該指令用於向外部公開端口,能夠指定多個端口。 |
ENV | 指定容器中的環境變量。 |
CMD | 用於指定一個容器啓動時要運行的命令,可被docker run命令覆蓋。 |
ENTRYPOINT | 與CMD指令相似,可接受docker run命令傳遞的參數,但不會被覆蓋。 |
WORKDIR | 在容器內部設置一個工做目錄,ENTRYPOINT/CMD將在此目錄下執行。 |
USER | 指定該鏡像會以什麼用戶運行。 |
VOLUME | 爲基於此鏡像建立的容器建立一個指定的掛載點。 |
ADD | 將構建環境下的文件和目錄複製到鏡像中。可使用url做爲文件源,可將歸檔(壓縮)文件做爲源文件,並在容器中自動解開。 |
COPY | 相似於ADD指令。COPY指令只關心在構建上下文中(當前目錄下)複製本地文件,而不會作文件提取和解壓工做。 |
LABEL | 用於爲Docker鏡像添加元數據。元數據以鍵值對(字典)的形式展示。能夠在每條指令中指定一個或多個元數據,不一樣元數據之間用空格分離。 |
ARG | 用於定義能夠在docker build命令運行時傳遞給構建運行時的變量。在構建時使用--build-arg指定參數便可。用戶只能在構建時指定在Dockerfile中定義過的參數。預約義(默認)ARG變量: HTTP_PROXY http_proxy HTTPS_PROXY https_proxy FTP_PROXY ftp_proxy NO_PROXY no_proxy。使用格式:docker build --build-arg
|
STOPSIGNAL | 用於設置中止容器時發送系統調用信號給容器。這個信號必須是內核系統調用表中合法的數,如9。或者DIGNAME格式的信號名稱,如SIGKILL。 |
ONBUILD | 爲鏡像添加觸發器。當一個鏡像被用做其餘鏡像的基礎鏡像時,觸發器纔會被執行。觸發器會在構建過程當中插入新指令,能夠認爲這些指令是緊跟在FROM以後指定的。 |
docker push test/static_web # test/static_web: DockerHub用戶名/鏡像名