docker系列 創建自己的docker及Dockerfile語法

創建自己的docker

  1. 測試伺服器已經安裝docker

  2. 編寫測試工程主要代碼如下

    DockerApplication : 服務類

.

3. 執行pom.xml生成docker-0.0.1-SNAPSHOT.jar

將上面生成的docker-0.0.1-SNAPSHOT.jar複製到工作目錄如:/docker/simplebuild

4. 在工作目錄下,添加Dockerfile,內容如下

.

Dockerfile語法介紹本章後面介紹

5. 建立imange並運行

在當前目錄下命令執行創建image命令

.

命令末尾「.」表示Dockerfile在當前路徑下

查看當前images列表,發現image已經生成:

.

創建容器並運行

Advertisements

.

訪問服務介面,表示服務已經啟動成功

.

Dockerfile語法

Dockerfile的指令是忽略大小寫的,建議使用大寫,使用 # 作為註釋,每一行只支持一條指令

  1. FROM:

    目地:指定基礎的image,表示新程序基於哪個image構建新image

    語法:

    FROM <image>:<tag>

    tag:版本號,如果沒有,則使用最新版本

  2. MAINTAINER 指定鏡像創建者信息

  3.  語法:MAINTAINER <name>

3.RUN

RUN可以運行任何被基礎image支持的命令

語法:

.

4.CMD

容器啟動時運行的操作。該指令只能在文件中存在一次,如果有多個,則只執行最後一條

Advertisements

.

ENTRYPOINT 設置容器啟動時執行的操作。該指令只能在文件中存在一次,如果有多個,則只執行最後一條

.

該指令的使用分為兩種情況, 一種是獨自使用。當獨自使用時,如果你還使用了CMD命令且CMD是一個完整的可執行的命令,那麼CMD指令和ENTRYPOINT會互相覆蓋只有最後一個CMD或者ENTRYPOINT有效

.

另一種用法和CMD指令配合使用來指定ENTRYPOINT的默認參數,這時CMD指令不是一個完整的可執行命令,僅僅是參數部分;ENTRYPOINT指令只能使用JSON方式指定執行命令,而不能指定參數。

.

6.USER 設置啟動容器的用戶,默認是root用戶。指定 memcached 的運行用戶daemon

.

7.EXPOSE 指定容器需要映射到宿主機器的埠

.

8.ENV 在image中設置一個環境變數。

.

9.ADD 從src複製文件到容器的的dest路徑

.

10.VOLUME 指定掛載點.

.

運行通過該Dockerfile生成image的容器,/tmp/data目錄中的數據在容器關閉后,裡面的數據還存在

11.WORKDIR 切換目錄。可以多次切換工作目錄(相當於cd命令)

.

Advertisements

你可能會喜歡