原文:http://www.itmuch.com/docker/21-docker-compose-quick-start/,轉載請註明出處。java
本節咱們來探討Compose使用的基本步驟,並編寫一個簡單示例快速入門。docker
使用Compose大體有三個步驟:shell
下面筆者以以前課上用到的Eureka爲例講解Compose的基本步驟。bash
在microservice-discovery-eureka-0.0.1-SNAPSHOT.jar
所在路徑(默認是項目的target目錄)建立Dockerfile文件,並在其中添加以下內容。app
FROM java:8 VOLUME /tmp ADD microservice-discovery-eureka-0.0.1-SNAPSHOT.jar app.jar RUN bash -c 'touch /app.jar' EXPOSE 9000 ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
在microservice-discovery-eureka-0.0.1-SNAPSHOT.jar
所在路徑建立文件docker-compose.yml,在其中添加以下內容。dom
version: '2' # 表示該docker-compose.yml文件使用的是Version 2 file format services: eureka: # 指定服務名稱 build: . # 指定Dockerfile所在路徑 ports: - "8761:8761" # 指定端口映射,相似docker run的-p選項,注意使用字符串形式
在docker-compose.yml
所在路徑執行如下命令。ui
docker-compose up
Compose就會自動構建鏡像並使用鏡像啓動容器。咱們也可以使用docker-compose up -d
後臺啓動並運行這些容器。code
訪問:http://宿主機IP:8761/
,便可訪問Eureka Server首頁。orm
Docker Compose將所管理的容器分爲三層,分別是工程(project),服務(service)以及容器(container)。Docker Compose運行目錄下的全部文件(docker-compose.yml, extends文件或環境變量文件等)組成一個工程(默認爲docker-compose.yml所在目錄的目錄名稱)。一個工程可包含多個服務;每一個服務中定義了容器運行的鏡像、參數和依賴,一個服務可包括多個容器實例。字符串
對應《入門示例》一節,工程名稱是docker-compose.yml所在的目錄名。該工程包含了1個服務,服務名稱是eureka;執行docker-compose up時,啓動了eureka服務的1個容器實例。