Docker部署jar

一、Docker簡介

Docker 是一個開源的項目,誕生於2013 年初,最初是 dotCloud 公司內部一個雲平台的項目。它基於 Google 公司推出的 Go 語言實現。Docker 自開源後受到廣泛的關注和討論,甚至被喻為“下一次開源革命的領導者”。

Docker 利用 LXC 技術,以及 Linux 內核的 Cgroups 和 Namespace 等獨特技術對進程進行封裝,以達到和虛擬機類似的隔離效果,但更加輕便和高效。

Docker 以容器為單位進行應用程序的封裝和交付。它可以自動化的構建、測試和部署應用程序。容器提供了一個獨立的運行環境,它的配置和依賴關係被打包在一個可移植的靜態容器中。由於所有的容器通過同一種方式進行封裝,因此它們可以在任何 Docker 容器運行的環境中運行。

二、Docker 部署 jar

1、創建一個應用

首先,我們需要創建一個 Spring Boot 項目,作為我們的應用程序。使用以下命令創建並啟動一個默認 Spring Boot 應用程序。


    spring init --dependencies=web myapp
    cd myapp
    ./mvnw spring-boot:run

您應該可以在瀏覽器中訪問該應用程序,在 http://localhost:8080 上看到 Hello World!。

2、Dockerfile

創建 Dockerfile 文件, 並使用以下命令構建 Docker 鏡像。


    FROM openjdk:8-jdk-alpine
    WORKDIR /app
    COPY target/myapp-0.0.1-SNAPSHOT.jar /app
    ENTRYPOINT ["java","-jar","myapp-0.0.1-SNAPSHOT.jar"]

該 Dockerfile 文件從官方的 openjdk 鏡像構建一個新鏡像,並設置一個工作目錄 /app。將構建好的 jar 包放置在容器中的 /app 目錄,並運行 ENTRYPOINT 命令啟動應用程序。

使用以下命令構建 Docker 鏡像。


    docker build -t myapp .

構建好的鏡像可以在本地鏡像列表中看到,使用以下命令列出鏡像。


    docker images

3、運行 Docker 容器

運行容器前,我們需要停止之前的應用程序,並使用以下命令啟動 Docker 容器。


    docker run -d -p 8080:8080 myapp

-d 參數表示容器在後台運行。-p 參數表示將容器內部的 8080 端口映射到主機的 8080 端口。

您應該可以在瀏覽器中訪問該應用程序,在 http://localhost:8080 上看到 Hello World!。

三、Docker Compose

1、創建 Docker Compose 文件

Docker Compose 是 Docker 官方推出的工具,用於定義和運行多容器的 Docker 應用程序。我們可以使用它來定義多個容器並相互通信的應用程序。

創建一個 docker-compose.yml 文件,添加以下內容。


    version: '3'
    services:
      myapp:
        build: .
        ports:
          - "8080:8080"
        depends_on:
          - mysql
      mysql:
        image: mysql:5.7
        environment:
          MYSQL_ROOT_PASSWORD: example

在這個文件中,我們定義了兩個服務。myapp 服務使用之前構建的 Docker 鏡像,並映射容器中的 8080 端口到主機的 8080 端口。mysql 服務使用官方的 MySQL 鏡像,並設置 ROOT 密碼。

2、啟動 Docker Compose

使用以下命令啟動 Docker Compose。


    docker-compose up

啟動後,應用程序可以在 http://localhost:8080 上訪問。

3、關閉 Docker Compose

使用以下命令停止 Docker Compose。


    docker-compose down

四、Docker Swarm

1、初始化 Docker Swarm

Docker Swarm 是 Docker 官方提供的容器編排工具。它可以讓您輕鬆地擴展和管理 Docker 容器。在使用 Docker Swarm 之前,我們需要初始化一個 Docker Swarm。


    docker swarm init

這個命令將初始化一個 Docker Swarm,並返回一個命令,用於加入一個節點到 Swarm 中。

2、創建一個 Stack

創建一個名為 myapp 的 Stack,使用以下命令。


    docker stack deploy -c docker-compose.yml myapp

這個命令將在 Swarm 中部署一個名為 myapp 的 Stack,它將啟動一個 myapp 服務和一個 mysql 服務。

3、查看服務

使用以下命令查看正在運行的服務。


    docker service ls

您應該可以看到兩個服務,“myapp_myapp”和“myapp_mysql”。

使用以下命令查看服務的詳細信息。


    docker service inspect myapp_myapp

您應該可以看到 myapp_myapp 服務的詳細信息,包括它的名稱、鏡像、副本數量、端口映射等。

4、擴展服務

使用以下命令將 myapp_myapp 服務的副本數量擴展到 3。


    docker service scale myapp_myapp=3

您應該可以看到 myapp_myapp 服務的副本數量被擴展到 3。

5、關閉 Stack

使用以下命令關閉 Stack。


    docker stack rm myapp

這個命令將刪除名為 myapp 的 Stack,停止所有關聯的服務。

五、總結

本文介紹了使用 Docker 部署 jar 文件的方法,包括手動部署、使用 Docker Compose 和使用 Docker Swarm。Docker 提供的容器化方式可以讓我們更輕鬆地進行應用程序的開發、測試和部署。希望本文可以幫助您更好的使用 Docker。

原創文章,作者:WKRJA,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/360940.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
WKRJA的頭像WKRJA
上一篇 2025-02-24 00:33
下一篇 2025-02-24 00:33

相關推薦

發表回復

登錄後才能評論