使用Docker Compose部署SpringBoot應用


使用Docker Compose部署SpringBoot應用

原創: 夢想de星空 [macrozheng](javascript:void(0)😉 6月19日

Docker Compose是一個用於定義和運行多個docker容器應用的工具。使用Compose你可以用YAML文件來配置你的應用服務,然后使用一個命令,你就可以部署你配置的所有服務了。

安裝

下載Docker Compose:

curl -L https://get.daocloud.io/docker/compose/releases/download/1.24.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

修改該文件的權限為可執行:

chmod +x /usr/local/bin/docker-compose

查看是否已經安裝成功:

docker-compose --version

img

使用Docker Compose的步驟

  • 使用Dockerfile定義應用程序環境,一般需要修改初始鏡像行為時才需要使用;
  • 使用docker-compose.yml定義需要部署的應用程序服務,以便執行腳本一次性部署;
  • 使用docker-compose up命令將所有應用服務一次性部署起來。

docker-compose.yml常用命令

image

指定運行的鏡像名稱

# 運行的是mysql5.7的鏡像image: mysql:5.7

container_name

配置容器名稱

# 容器名稱為mysqlcontainer_name: mysql

ports

指定宿主機和容器的端口映射(HOST:CONTAINER)

# 將宿主機的3306端口映射到容器的3306端口ports:  - 3306:3306

volumes

將宿主機的文件或目錄掛載到容器中(HOST:CONTAINER)

# 將外部文件掛載到myql容器中volumes:  - /mydata/mysql/log:/var/log/mysql  - /mydata/mysql/data:/var/lib/mysql  - /mydata/mysql/conf:/etc/mysql

environment

配置環境變量

# 設置mysqlroot帳號密碼的環境變量environment:  - MYSQL_ROOT_PASSWORD=root

連接其他容器的服務(SERVICE:ALIAS)

# 可以以database為域名訪問服務名稱為db的容器links:  - db:database

Docker Compose常用命令

構建、創建、啟動相關容器:

# -d表示在后台運行docker-compose up -d

停止所有相關容器:

docker-compose stop

列出所有容器信息:

docker-compose ps

使用Docker Compose 部署應用

編寫docker-compose.yml文件

Docker Compose將所管理的容器分為三層,工程、服務及容器。docker-compose.yml中定義所有服務組成了一個工程,services節點下即為服務,服務之下為容器。容器與容器直之間可以以服務名稱為域名進行訪問,比如在mall-tiny-docker-compose服務中可以通過jdbc:mysql://db:3306這個地址來訪問db這個mysql服務。

version: '3'services:  # 指定服務名稱  db:    # 指定服務使用的鏡像    image: mysql:5.7    # 指定容器名稱    container_name: mysql    # 指定服務運行的端口    ports:      - 3306:3306    # 指定容器中需要掛載的文件    volumes:      - /mydata/mysql/log:/var/log/mysql      - /mydata/mysql/data:/var/lib/mysql      - /mydata/mysql/conf:/etc/mysql    # 指定容器的環境變量    environment:      - MYSQL_ROOT_PASSWORD=root  # 指定服務名稱  mall-tiny-docker-compose:    # 指定服務使用的鏡像    image: mall-tiny/mall-tiny-docker-compose:0.0.1-SNAPSHOT    # 指定容器名稱    container_name: mall-tiny-docker-compose    # 指定服務運行的端口    ports:      - 8080:8080    # 指定容器中需要掛載的文件    volumes:      - /etc/localtime:/etc/localtime      - /mydata/app/mall-tiny-docker-compose/logs:/var/logs

注意:如果遇到mall-tiny-docker-compose服務無法連接到mysql,需要在mysql中建立mall數據庫,同時導入mall.sql腳本。具體參考使用Dockerfile為SpringBoot應用構建Docker鏡像中的運行mysql服務並設置部分。

使用maven插件構建mall-tiny-docker-compose鏡像

img

注意:構建有問題的可以參考使用Maven插件構建Docker鏡像

運行Docker Compose命令啟動所有服務

先將docker-compose.yml上傳至Linux服務器,再在當前目錄下運行如下命令:

docker-compose up -d

img

訪問接口文檔地址http://192.168.3.101:8080/swagger-ui.html:

img


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM