1.利用Dockerfile建立鏡像nginx
什麼是Dockerfile?docker
定義:Dockerfile是一個文本格式的配置文件,用戶能夠使用Dockerfile快速建立自定義鏡像。shell
基本結構:ubuntu
Dockerfile由一行行的命令語句組成。而且支持以#開頭的註釋行。通常Dockerfile分爲四個部分:基礎鏡像信息、維護者信息、鏡像操做指令和容器啓動時的指令。工具
Dockerfile示例:學習
#This is a Dockerfileui
#Author:limingurl
#第一行必須指定基礎鏡像3d
FROM ubuntu調試
#維護者信息
MAINTAINER <394498036@qq.com>
#鏡像的操做指令
RUN apt-get update
RUN apt-getinstall -y nginx
RUN echo 「\ndaemonoff:」 >> /etc/nginx/nginx.conf
#容器啓動時的指令
CMD /usr/sbin/nginx
操做一下:
首先建立目錄testDockerfile並進入
vi Dockerfile
建立命令:
docker build –t =「<鏡像名稱>」.
注意:執行此命令要和Dockerfile在同級目錄,文件名稱必須爲Dockerfile。命令後面的」.」表示在當前目錄下執行。
2.Dockerfile指令集
1 FROM
第一條指令必須爲FROM指令,用於指定基礎鏡像。
2 MAINTAINER
格式爲 MAINTAINER ,指定維護者信息。
3 RUN
格式爲 RUN ,會在shell終端運行命令。
4 EXPOSE
格式爲 EXPOSE [ ...],容器須要暴露的端口號。鏡像啓動能夠經過 –P 或 -p 進行端口映射的綁定。
5 ENV
格式爲 ENV 。
指定一個環境變量,能夠被後續的RUN引用,而且在容器中記錄該環境變量。
6 ADD
格式爲 ADD 。
該命令將複製指定的到容器中的。其中能夠是Dockerfile所在目錄的一個相對路徑;也能夠是url,還能夠是tar文件(自動解壓)。
7 VOLUME
格式爲 VOLUME [path]。
建立一個能夠從本地主機或其餘容器掛載點,通常用來存放須要保持的數據。
8 USER
格式爲 USER 。
指定運行容器時的用戶名,後續的RUN也會指定該用戶。
9 WORKDIR
格式爲 WORKDIR 。
指定工做空間,運行完WORKDIR後,後續執行的RUN、CMD、ENTRYPOINT都會在此目錄下執行。
10 COPY
格式爲 COPY 。
複製本地主機的到容器中的,目標路徑不存在時,會自動建立。
當使用本地目錄爲源目錄時,推薦使用COPY。
11 CMD
推薦格式爲 CMD [「executable」,」param1」,」param2」] 。
做爲ENTRYPOINT的默認參數爲 CMD[」param1」,」param2」]。
指定容器的啓動命令,每一個Dockerfile只能有一條CMD命令,若是指定多條,只有最後一條會執行。
用戶啓動容器時指定運行命令,會覆蓋掉Dockerfile中的CMD命令。
12 ENTRYPOINT
格式爲 ENTRYPOINT [「executable」,」param1」,」param2」]。
配置容器啓動後的命令,可被docker run提供的--entrypoint參數覆蓋。
每一個Dockerfile只能有一條ENTRYPOINT命令,若是指定多條,只有最後一條會執行。
3.容器內安裝工具的方法
4.Dockerfile最佳實踐
1 錯誤定位
每一個Dockerfile的指令能夠生成新的一層鏡像,若是經過Dockerfile建立鏡像出錯,能夠根據出錯所在步驟的上一層啓動容器,而後手工執行出錯層的命令,以達到調試目的。
2 好的使用習慣
http://dockone.io/article/131
http://dockone.io/article/132
我的主頁:idig8.com
往期docker學習: