docker系列 創建自己的docker及Dockerfile語法
創建自己的docker
測試伺服器已經安裝docker
編寫測試工程主要代碼如下
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的指令是忽略大小寫的,建議使用大寫,使用 # 作為註釋,每一行只支持一條指令
FROM:
目地:指定基礎的image,表示新程序基於哪個image構建新image
語法:
FROM <image>:<tag>
tag:版本號,如果沒有,則使用最新版本
MAINTAINER 指定鏡像創建者信息
語法: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命令)