原文:http://www.itmuch.com/docker/21-docker-compose-quick-start/,轉載請註明出處。
本節我們來探討Compose使用的基本步驟,並編寫一個簡單示例快速入門。
基本步驟
使用Compose大致有三個步驟:
- 使用Dockerfile(或其他方式)定義應用程序環境,以便在任何地方重現該環境。
- 在docker-compose.yml文件中定義組成應用程序的服務,以便各個服務在一個隔離的環境中一起運行。
- 運行docker-compose up命令,啓動並運行整個應用程序。
入門示例
下面筆者以之前課上用到的Eureka爲例講解Compose的基本步驟。
-
在
microservice-discovery-eureka-0.0.1-SNAPSHOT.jar
所在路徑(默認是項目的target目錄)創建Dockerfile文件,並在其中添加如下內容。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,在其中添加如下內容。version: '2' # 表示該docker-compose.yml文件使用的是Version 2 file format services: eureka: # 指定服務名稱 build: . # 指定Dockerfile所在路徑 ports: - "8761:8761" # 指定端口映射,類似docker run的-p選項,注意使用字符串形式
-
在
docker-compose.yml
所在路徑執行以下命令。docker-compose up
Compose就會自動構建鏡像並使用鏡像啓動容器。我們也可使用
docker-compose up -d
後臺啓動並運行這些容器。 -
訪問:
http://宿主機IP:8761/
,即可訪問Eureka Server首頁。
工程、服務、容器
Docker Compose將所管理的容器分爲三層,分別是工程(project),服務(service)以及容器(container)。Docker Compose運行目錄下的所有文件(docker-compose.yml, extends文件或環境變量文件等)組成一個工程(默認爲docker-compose.yml所在目錄的目錄名稱)。一個工程可包含多個服務;每個服務中定義了容器運行的鏡像、參數和依賴,一個服務可包括多個容器實例。
對應《入門示例》一節,工程名稱是docker-compose.yml所在的目錄名。該工程包含了1個服務,服務名稱是eureka;執行docker-compose up時,啓動了eureka服務的1個容器實例。