最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

本地使用Docker部署Java服務(wù)的詳細步驟

 更新時間:2025年10月20日 08:45:23   作者:自由的瘋  
在本地使用 Docker 部署 Java 服務(wù)是一個常見的做法,可以幫助開發(fā)者在本地環(huán)境中快速搭建、測試和調(diào)試 Java 應(yīng)用程序,以下是詳細的步驟指南,幫助你在本地計算機上使用 Docker 部署 Java 服務(wù),需要的朋友可以參考下

引言

在本地使用 Docker 部署 Java 服務(wù)是一個常見的做法,可以幫助開發(fā)者在本地環(huán)境中快速搭建、測試和調(diào)試 Java 應(yīng)用程序。以下是詳細的步驟指南,幫助你在本地計算機上使用 Docker 部署 Java 服務(wù)。

1. 安裝 Docker

1.1 Windows

  1. 檢查系統(tǒng)要求:確保你的 Windows 版本是 Windows 10 Pro、Enterprise 或 Education(Build 14393 或更高版本)。家庭版用戶可能需要更新到 Windows 10 Pro。
  2. 啟用 WSL 2:打開 PowerShell 以管理員身份運行以下命令:
wsl --install
  1. 下載 Docker Desktop:訪問 ??Docker 官方下載頁面??,下載適用于 Windows 的 Docker Desktop 安裝包。
  2. 安裝 Docker Desktop:雙擊下載的安裝包,按照提示完成安裝。
  3. 啟動 Docker Desktop:安裝完成后,啟動 Docker Desktop。首次啟動時,可能需要幾分鐘時間來初始化。

1.2 macOS

  1. 下載 Docker Desktop:訪問 ??Docker 官方下載頁面??,下載適用于 macOS 的 Docker Desktop 安裝包。
  2. 安裝 Docker Desktop:雙擊下載的 ??.dmg?? 文件,按照提示完成安裝。
  3. 啟動 Docker Desktop:安裝完成后,啟動 Docker Desktop。首次啟動時,可能需要幾分鐘時間來初始化。

1.3 Linux

  1. 更新系統(tǒng)
sudo apt-get update
sudo apt-get upgrade
  1. 安裝必要的包
sudo apt-get install apt-transport-https ca-certificates curl gnupg lsb-release
  1. 添加 Docker 的官方 GPG 密鑰
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
  1. 設(shè)置穩(wěn)定版存儲庫
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
  1. 安裝 Docker Engine
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
  1. 啟動 Docker 服務(wù)
sudo systemctl start docker
sudo systemctl enable docker

2. 配置 Docker

2.1 配置鏡像加速

為了提高 Docker 鏡像的下載速度,可以配置國內(nèi)的鏡像加速器。編輯 ??/etc/docker/daemon.json?? 文件,添加如下內(nèi)容:

{
  "registry-mirrors": ["https://<Your-ID>.mirror.aliyuncs.com"]
}

然后重啟 Docker 服務(wù):

sudo systemctl restart docker

3. 創(chuàng)建 Java 應(yīng)用

假設(shè)你已經(jīng)有一個簡單的 Spring Boot 應(yīng)用程序,目錄結(jié)構(gòu)如下:

my-java-app/
├── src
│   ├── main
│   │   ├── java
│   │   │   └── com
│   │   │       └── example
│   │   │           └── MyAppApplication.java
│   │   └── resources
│   │       └── application.properties
├── pom.xml
└── Dockerfile

3.1 編寫 ??Dockerfile??

在項目根目錄下創(chuàng)建一個名為 ??Dockerfile?? 的文件,內(nèi)容如下:

# 使用官方的 OpenJDK 鏡像作為基礎(chǔ)鏡像
FROM openjdk:11-jdk-slim as build

# 設(shè)置工作目錄
WORKDIR /app

# 將項目文件復(fù)制到容器中
COPY . .

# 構(gòu)建 Java 項目
RUN ./mvnw clean package

# 使用構(gòu)建階段生成的 jar 文件創(chuàng)建一個新的鏡像層
FROM openjdk:11-jre-slim

# 設(shè)置工作目錄
WORKDIR /app

# 將構(gòu)建階段生成的 jar 文件復(fù)制到新的鏡像層中
COPY --from=build /app/target/my-app.jar /app/my-app.jar

# 暴露應(yīng)用程序端口
EXPOSE 8080

# 啟動應(yīng)用程序
ENTRYPOINT ["java", "-jar", "/app/my-app.jar"]

4. 構(gòu)建 Docker 鏡像

在項目根目錄中運行以下命令來構(gòu)建 Docker 鏡像:

docker build -t my-java-app .

5. 運行 Docker 容器

使用以下命令來運行 Docker 容器:

docker run -d -p 8080:8080 --name my-java-app-container my-java-app

其中 ??-d??? 表示后臺運行,??-p 8080:8080??? 表示將宿主機的 8080 端口映射到容器的 8080 端口,??--name my-java-app-container?? 表示為容器指定一個名稱。

6. 訪問 Java 應(yīng)用

打開瀏覽器,訪問 ??http://localhost:8080??,你應(yīng)該能看到你的 Java 應(yīng)用程序的響應(yīng)。

7. 管理 Docker 容器和鏡像

7.1 列出所有運行的容器

docker ps

7.2 列出所有容器(包括停止的)

docker ps -a

7.3 停止容器

docker stop <container-id>

7.4 刪除容器

docker rm <container-id>

7.5 列出所有鏡像

docker images

7.6 刪除鏡像

docker rmi <image-id>

8. 高級配置

8.1 使用環(huán)境變量

通過環(huán)境變量可以靈活配置應(yīng)用程序,避免硬編碼。在 ??Dockerfile?? 中定義環(huán)境變量:

ENV SPRING_PROFILES_ACTIVE=prod

在運行容器時,可以通過 ??-e?? 參數(shù)傳遞環(huán)境變量:

docker run -d -p 8080:8080 -e SPRING_PROFILES_ACTIVE=prod --name my-java-app-container my-java-app

8.2 數(shù)據(jù)持久化

使用 Docker 卷(Volume)可以實現(xiàn)數(shù)據(jù)的持久化,避免數(shù)據(jù)丟失。在 ??docker-compose.yml?? 中定義卷,并掛載到容器中:

version: '3.8'
services:
  app:
    build: .
    ports:
      - "8080:8080"
    volumes:
      - app-data:/app/data
volumes:
  app-data:

9. 使用 Docker Compose 管理多容器應(yīng)用

假設(shè)你的 Java 應(yīng)用程序依賴于 MySQL 數(shù)據(jù)庫,可以使用 Docker Compose 來管理多個服務(wù)。

9.1 創(chuàng)建 ??docker-compose.yml?? 文件

在項目根目錄中創(chuàng)建一個名為 ??docker-compose.yml?? 的文件,內(nèi)容如下:

version: '3.8'
services:
  app:
    build: .
    ports:
      - "8080:8080"
    depends_on:
      - db
    environment:
      SPRING_DATASOURCE_URL: jdbc:mysql://db:3306/mydb
      SPRING_DATASOURCE_USERNAME: user
      SPRING_DATASOURCE_PASSWORD: pass
  db:
    image: mysql:5.7
    environment:
      MYSQL_DATABASE: mydb
      MYSQL_USER: user
      MYSQL_PASSWORD: pass
    ports:
      - "3306:3306"
    volumes:
      - db-data:/var/lib/mysql
volumes:
  db-data:

9.2 啟動 Docker Compose

在包含 ??docker-compose.yml?? 文件的目錄中運行以下命令來啟動所有服務(wù):

docker-compose up -d

其中 ??-d?? 表示后臺運行。

10. 總結(jié)

通過以上步驟,你可以在本地計算機上成功安裝和配置 Docker,并使用 Docker 來部署 Java 服務(wù)。Docker 的輕量級、可移植和高效的特點使得開發(fā)者可以在任何支持 Docker 的環(huán)境中快速搭建和運行應(yīng)用。希望這些步驟對你有所幫助,祝你在 Docker 學(xué)習和實踐中取得成功!

以上就是本地使用Docker部署Java服務(wù)的詳細步驟的詳細內(nèi)容,更多關(guān)于Docker部署Java服務(wù)的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Mybatis如何解決sql中l(wèi)ike通配符模糊匹配問題

    Mybatis如何解決sql中l(wèi)ike通配符模糊匹配問題

    這篇文章主要介紹了Mybatis如何解決sql中l(wèi)ike通配符模糊匹配問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • Spring注解之@validated使用詳解

    Spring注解之@validated使用詳解

    spring-boot中可以用@validated來校驗數(shù)據(jù),如果數(shù)據(jù)異常則會統(tǒng)一拋出異常,方便異常中心統(tǒng)一處理,這篇文章主要介紹了Spring注解之@validated使用,需要的朋友可以參考下
    2023-01-01
  • idea項目debug模式無法啟動的解決

    idea項目debug模式無法啟動的解決

    這篇文章主要介紹了idea項目debug模式無法啟動的解決,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • mybatis-plus實現(xiàn)邏輯刪除的示例代碼

    mybatis-plus實現(xiàn)邏輯刪除的示例代碼

    本文主要介紹了mybatis-plus實現(xiàn)邏輯刪除的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友們下面隨著小編來一起學(xué)習學(xué)習吧
    2023-05-05
  • java使用CountDownLatch實現(xiàn)多線程協(xié)作

    java使用CountDownLatch實現(xiàn)多線程協(xié)作

    在多線程編程中,經(jīng)常需要實現(xiàn)一種機制來協(xié)調(diào)多個線程的執(zhí)行,以確保某些操作在所有線程完成后再進行,CountDownLatch?就是?Java?并發(fā)包中提供的一種同步工具,下面我們就來看看如何使用CountDownLatch實現(xiàn)多線程協(xié)作吧
    2023-11-11
  • 淺析Java中的動態(tài)代理

    淺析Java中的動態(tài)代理

    動態(tài)代理指代理類和目標類的關(guān)系在程序運行的時候確定的,客戶通過代理類來調(diào)用目標對象的方法。本文將通過案例詳細講解一下Java動態(tài)代理的原理及實現(xiàn),需要的可以參考一下
    2022-09-09
  • SpringCloud Feign原理剖析

    SpringCloud Feign原理剖析

    feign是用在微服務(wù)中,各個微服務(wù)間的調(diào)用,它是通過聲明式的方式來定義接口,而不用實現(xiàn)接口,feign讓服務(wù)間的調(diào)用變得簡單,不用各個服務(wù)去處理http client相關(guān)的邏輯,本文詳細介紹SpringCloud Feign原理,需要的朋友可以參考下
    2023-06-06
  • mybatis中嵌套使用foreach需要注意的坑

    mybatis中嵌套使用foreach需要注意的坑

    在使用MyBatis進行數(shù)據(jù)庫操作時,如果需要在一個大的foreach標簽中嵌套另一個foreach,需要注意內(nèi)層foreach的item屬性不能與外層重復(fù),如果出現(xiàn)重復(fù),會導(dǎo)致綁定參數(shù)時找不到正確的參數(shù),從而拋出異常
    2024-09-09
  • Java實現(xiàn)ECDSA簽名算法

    Java實現(xiàn)ECDSA簽名算法

    這篇文章主要介紹了Java實現(xiàn)ECDSA簽名算法,幫助大家更好得利用Java實現(xiàn)機器學(xué)習算法,感興趣的朋友可以了解下
    2020-10-10
  • Java同步鎖Synchronized底層源碼和原理剖析(推薦)

    Java同步鎖Synchronized底層源碼和原理剖析(推薦)

    這篇文章主要介紹了Java同步鎖Synchronized底層源碼和原理剖析,釋放后,進入減減操作、直到為0然后喚醒隊列,讓他們?nèi)帄Z鎖,循環(huán)前面步驟,對Java同步鎖Synchronized相關(guān)知識感興趣的朋友一起看看吧
    2022-05-05

最新評論

都江堰市| 邓州市| 沁水县| 西昌市| 安化县| 济阳县| 大邑县| 盐城市| 女性| 湟源县| 九江市| 牡丹江市| 库伦旗| 合江县| 迁安市| 安庆市| 兴山县| 贡嘎县| 长乐市| 中西区| 繁昌县| 天门市| 博客| 张家港市| 芦溪县| 衡东县| 温泉县| 平乡县| 商河县| 广水市| 安仁县| 天峨县| 凤山县| 阿克陶县| 佳木斯市| 高州市| 阳新县| 广东省| 确山县| 桐柏县| 通化市|