本地使用Docker部署Java服务的详细步骤
目录
- 引言
- 1. 安装 docker
- 1.1 Windows
- 1.2 MACOS
- 1.3 linux
- 2. 配置 Docker
- 2.1 配置镜像加速
- 3. 创建 Java 应用
- 3.1 编写 Dockerfile
- 4. 构建 Docker 镜像
- 5. 运行 Docker 容器
- 6. 访问 Java 应用
- 7. 管理 Docker 容器和镜像
- 7.1 列出所有运行的容器
- 7.2 列出所有容器(包括停止的)
- 7.3 停止容器
- 7.4 删除容器
- 7.5 列出所有镜像
- 7.6 删除镜像
- 8. 高级配置
- 8.1 使用环境变量
- 8.2 数据持久化
- 9. 使用 Docker Compose 管理多容器应用
- 9.1 创建 docker-compose.yml 文件
- 9.2 启动 Docker Compose
- 10. 总结
引言
在本地使用 Docker 部署 Java 服务是一个常见的做法,可以帮助开发者在本地环境中快速搭建、测试和调试 Java 应用程序。以下是详细的步骤指南,帮助你在本地计算机上使用 Docker 部署 Java 服务。
1. 安装 Docker
1.1 Windows
- 检查系统要求:确保你的 Windows 版本是 Windows 10 Pro、Enterprise 或 Education(Build 14393 或更高版本)。家庭版用户可能需要更新到 Windows 10 Pro。
- 启用 WSL 2:打开 PowerShell 以管理员身份运行以下命令:
wsl --install
- 下载 Docker Desktop:访问 Docker 官方下载页面,下载适用于 Windows 的 Docker Desktop 安装包。
- 安装 Docker Desktop:双击下载的安装包,按照提示完成安装。
- 启动 Docker Desktop:安装完成后,启动 Docker Desktop。首次启动时,可能需要几分钟时间www.devze.com来初始化。
1.2 macOS
- 下载 Docker Desktop:访问 Docker 官方下载页面,下载适用于 macOS 的 Docker Desktop 安装包。
- 安装 Docker Desktop:双击下载的
.dmg
文件,按照提示完成安装。 - 启动 Docker Desktop:安装完成后,启动 Docker Desktop。首次启动时,可能需要几分钟时间来初始化。
1.3 Linux
- 更新系统:
sudo apt-get update sudo apt-get upgrade
- 安装必要的包:
sudo apt-get install apt-transport-https ca-certificates curl gnupg lsb-release
- 添加 Docker 的官方 GPG 密钥:
curl -fsSL https://download.docker.com/linux/Ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
- 设置稳定版存储库:
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
- 安装 Docker Engine:
sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io
- 启动 Docker 服务:
sudo sksQnFZblWystemctl start docker sudo systemctl enable docker
2. 配置 Docker
2.1 配置镜像加速
为了提高 Docker 镜像的下载速度,可以配置国内的镜像加速器。编辑 /etc/docker/daemon.json
文件,添加如下内容:
{ "registry-mirrors": ["https://<Your-ID>.mirror.aliyuncs.com"] }
然后重启 Docker 服务:
sudo systemctl restart docker
3. 创建 Java 应用
假设你已经有一个简单的 Spring Boot 应用程序,目录结构如下:
my-java-app/ ├── src │ ├── main │ │ ├── java │ │ │ └── com │ │ │ └── example │ │ │ └── MyAppApplication.java │ │ └── resources │ │ └── application.properties ├── pom.XML └── Dockerfile
3.1 编写 Dockerfile
在项目根目录下创建一个名为 Dockerfile
的文件,内容如下:
# 使用官方的 OpenJDK 镜像作为基础镜像 FROM openjdk:11-jdk-slim as build # 设置工作目录 WORKDIR /app # 将项目文件复制到容器中 COPY . . # 构建 Java 项目 RUN ./mvnw clean package # 使用构建阶段生成的 jar 文件创建一个新的镜像层 FROM openjdk:11-jre-slim # 设置工作目录 WORKDIR /app # 将构建阶段生成的 jar 文件复制到新的镜像层中 COPY --from=build /app/target/my-app.jar /app/my-app.jar # 暴露应用程序端口 EXPOSE 8080 # 启动应用程序 ENTRYPOINT ["java", "-jar", "/app/my-app.jar"]
4. 构建 Docker 镜像
在项目根目录中运行以下命令来构建 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 应用
打开浏览器,访问 http://localhost:8080
,你应该能看到你的 Java 应用程序的响应。
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 使用环境变量
通过环境变量可以灵活配置应用程序,避免硬编码。在 Dwww.devze.comockerfile
中定义环境变量:
ENV SPRING_PROFILES_ACTIVE=prod
在运行容器时,可以通过 -e
参数传递环境变量:
docker run -d -p 8080:8080 -e SPRING_PROFILES_ACTIVE=prod --name my-java-app-container my-java-app
8.2 数据持久化
使用 Docker 卷(Volume)可以实现数据的持久化,避免数据丢失。在 docker-compose.yml
中定义卷,并挂载到容器中:
version: '3.8' services: app: build: . ports: - "8080:8080" volumes: - app-data:/app/data volumes: app-data:
9. 使用 Docker Compose 管理多容器应用
假设你的 Java 应用程序依赖于 mysql 数据库,可以使用 Docker Compose 来管理多个服务。
9.1 创建 docker-compose.yml 文件
在项目根目录中创建一个名为 docker-compose.yml
的文件,内容如下:
version: '3.8' services: app: build: . ports: - "8080:8080" depends_on: - db environment: SPRING_DATASOURCE_URL: jdbc:mysql://db:3306/mydb SPRING_DA编程客栈TASOURCE_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
文件的目录中运行以下命令来启动所有服务:
docker-compose up -d
其中 -d
表示后台运行。
10. 总结
通过以上步骤,你可以在本地计算机上成功安装和配置 Docker,并使用 Docker 来部署 Java 服务。Docker 的轻量级、可移植和高效的特点使得开发者可以在任何支持 Docker 的环境中快速搭建和运行应用。希望这些步骤对你有所帮助,祝你在 Docker 学习和实践中取得成功!
以上就是本地使用Docker部署Java服务的详细步骤的详细内容,更多关于Doandroidcker部署Java服务的资料请关注编程客栈(www.devze.com)其它相关文章!
精彩评论