docker-compose 入門
阿新 • • 發佈:2021-08-07
docker-compose 安裝
Linux 下安裝
sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
要安裝其他版本的 Compose,請替換 1.29.1
將可執行許可權應用給docker-compose
sudo chmod +x /usr/local/bin/docker-compose
建立軟連線,在/usr/bin 下,這樣可以直接訪問到命令
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
檢視版本,確定是否成功安裝配置。
docker-compose 簡介
Compose 是用於定義和執行多容器 Docker 應用程式的工具。通過 Compose,您可以使用 YML 檔案來配置應用程式需要的所有服務。然後,使用一個命令,就可以從 YML 檔案配置中建立並啟動所有服務。
也就是可以編排容器。
docker-compose 編排容器
首先我們準備了一個java程式,簡單的helloworld
將其放在目錄下,該目錄還有docker-compose.yml 的配置檔案,以及將jar包打包成映象的Dockerfile,還有我們即將用到的nginx配置,這個配置是從另外一個nginx容器中匯出的
# 將執行中的ng容器中的/etc/nginx/ 資料夾 拷貝至當前資料夾下的nginx/conf
docker cp ng:/etc/nginx/ ./nginx/conf
我們先配置Dockerfile,比較簡單
FROM java:8
VOLUME /tmp
WORKDIR /project/demo
ADD ./demo-0.0.1-SNAPSHOT.jar ./app.jar
ENTRYPOINT ["java","-jar" ,"./app.jar"]
接著配置docker-compose.yml
version: '3' # 服務---需要構建的容器 services: docker-demo: # 表示使用當前目錄下的Dockerfile 進行構建映象 build: ./ # 對映埠 ports: - "9090:8080" nginx: # 使用nginx映象 image: nginx # 掛載 將我們當前目錄的 ./nginx/conf/nginx 掛載到 容器中的 /etc/nginx volumes: - ./nginx/conf/nginx:/etc/nginx # 連結 這樣 在容器中就可以使用app進行於docker-demo這個容器通訊 相當於ip對映 links: - "docker-demo:app" # 對映埠 ports: - "80:80"
然後我們使用下面命令構建映象並啟動容器
# 構建映象並啟動容器 -d 後臺啟動
docker-compose up -d
# 檢視日誌
docker-compse logs
nginx.conf
location /hello {
# 需要使用app的內部埠
proxy_pass http://app:8080;
}
nginx 代理成功