1. 程式人生 > 其它 >docker-compose 入門

docker-compose 入門

docker-compose 安裝

官方地址github

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 代理成功