以前寫鏡像的時候說到建立鏡像最經常使用的方式是使用 Dockerfile,這篇就來重點說一下,究竟是怎麼使用 Dockerfile 來建立的。nginx
# 一、第一行必須是 FROM 基礎鏡像信息
FROM ubuntu
# 二、維護者信息
MAINTAINER docker_user docker_user@email.com
# 三、鏡像操做指令
RUN echo "deb http://archive.ubuntu.com/ubuntu/ raring main universe" >> /etc/apt/sources.list RUN apt-get update && apt-get install -y nginx RUN echo "\ndaemon off;" >> /etc/nginx/nginx.conf
# 四、容器啓動執行指令
CMD /usr/sbin/nginx 複製代碼
Dockerfile 基本就長這樣,固然這是一個很簡單的例子,還有不少其餘命令會在下個小節介紹。git
有幾點須要注意,第一行必須是 FROM 命令,表示是基於哪一個基礎鏡像來建立鏡像的。第二行通常是 MAINTAINER 命令,表示維護人信息,但不作硬性要求。最後一行是 CMD 命令,表示啓動容器執行的命令,CMD 命令必須在最後一行,若是有多個 CMD 命令,則只有最後一個生效。github
FROM: 必須是 Dockerfile 的首個命令,定義了使用哪一個基礎鏡像啓動構建流程。docker
MAINTAINER: 聲明鏡像做者。shell
COPY: 將宿主機的文件拷貝到鏡像內的指定路徑。ubuntu
ADD: 做用相似於 COPY。bash
COPY 和 ADD 的區別是:ADD 命令功能更多,好比拷貝一個壓縮包,ADD 能夠將壓縮包解壓到鏡像內,若是是下載連接,ADD 會先下載文件,而後再拷貝。微信
但如今 docker 官方更推薦使用 COPY 命令,一個命令只作一件事。ui
WORKDIR: 指定 Dockerfile 中該命令下的操做所在的工做目錄。spa
RUN: 執行命令行命令。
ENV: 設置環境變量。
VOLUME: 掛載數據卷。
EXPOSE: 暴露端口。
CMD: 服務啓動命令。
有了 Dockerfile 以後,在 Dockerfile 所在目錄執行命令:
# docker build -t <image_name> .
複製代碼
就這麼簡單,鏡像就建立好了。
技術博客:
同時,也歡迎關注個人微信公衆號 AlwaysBeta,更多精彩內容等你來。