學習docker以後發現構建鏡像好輕鬆,直接去倉庫拉取一下就能夠了。但是仍是有不足,就是若是想要本身搭建項目的話,倉庫裏面可沒有供咱們使用的現成的鏡像,因此咱們就須要本身構建鏡像了。docker-compose就這樣被安排上了。
能夠查看最新版本的安裝方式:https://github.com/docker/com...
具體步驟以下:java
1.sudo curl -L https://github.com/docker/compose/releases/download/1.18.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose 2.sudo chmod +x /usr/local/bin/docker-compose 給docker-compose執行權限 3.docker-compose --version 測試安裝是否成功,成功的話打印從出docker-compose的版本信息
sudo rm /usr/local/bin/docker-compose
格式:FROM <image>或 FROM <image>:<tag>
第一條指令必須爲FROM指令,而且,若是在同一個Dockerfile中建立多個鏡像時,可使用多個FROM指令(每一個鏡像一次)git
格式:MAINTAINET <name>
指定維護者的信息github
格式:WORKDIR /path/to/workdir
爲後續的 RUN 、 CMD 、 ENTRYPOINT 指令配置工做目錄。(可使用多個 WORKDIR 指令,後續命令若是參數是相對路徑, 則會基於以前命令指定的路徑)web
格式:ADD <src> <dest>
複製指定的<src>到容器的<dest>中,<src>能夠是Dockerfile所在的目錄的一個相對路徑;能夠是URL,也能夠是tar.gz(自動解壓)spring
格式:COPY <src> <dest>
複製本地主機的 <src> ( 爲 Dockerfile 所在目錄的相對路徑)到容器中的 <dest> (當使用本地目錄爲源目錄時,推薦使用 COPY)docker
格式:EXPOSE <port> [ <port> ...]
告訴Docker服務端暴露端口,在容器啓動時須要經過 -p 作端口映射數據庫
格式:VOLUME ["/mnt"]
建立一個能夠從本地主機或其餘容器掛載的掛載點,通常用來存放數據庫和須要保持的數據等springboot
格式:ENTRYPOINT ["","",""]
配置容器啓動後執行的命令,而且不可被 docker run 提供的參數覆蓋。(每一個 Dockerfile 中只能有一個 ENTRYPOINT ,當指定多個時,只有最後一個起效)oracle
格式:RUN <command> 或 RUN ["", "", ""]
每條指令將在當前鏡像基礎上執行,並提交爲新的鏡像。(能夠用「」換行)app
格式:ENTRYPOINT ["","",""]
配置容器啓動後執行的命令,而且不可被 docker run 提供的參數覆蓋。(每一個 Dockerfile 中只能有一個 ENTRYPOINT ,當指定多個時,只有最後一個起效)
格式:CMD ["","",""]
指定啓動容器時執行的命令,每一個Dockerfile只能有一條CMD指令,若是指定了多條指令,則最後一條執行。(會被啓動時指定的命令覆蓋)
這是一個簡單的Dockerfile文件,就是用jdk8運行一個springboot的程序。
FROM oracle/openjdk:8 MAINTAINER xiuaiba@163.com WORKDIR /opt ADD jdevtemplateboot.jar app.jar CMD ["java","-jar","app.jar"]
version: '2.0' services: web_test: build: . ports: - "8088:8080" volumes: - /mnt/logs/void_roi:/apps/void_roi/logs
docker-compose build --no-cache;
docker-compose up -d
docker-compose down
先寫這麼多,後面會在進行修改的。。。