跟我一塊兒學docker(八)--Dockerfile

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學習:

認識docker

核心概念和安裝

鏡像的經常使用操做

容器的基本操做

倉庫

數據卷


相關文章
相關標籤/搜索