Docker安装以及运行一个SpringBoot的webDemo

本文详细介绍了如何在CentOS系统上通过阿里云镜像卸载并重新安装Docker,配置镜像源,运行HelloWorld镜像,以及使用Docker部署SpringBoot项目的全过程,包括创建Dockerfile、打包镜像和启动容器。

Docker安装

  1. 先卸载之前的docker
 `yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine`
  1. 安装软件包,使用阿里云镜像
//第一步
yum install -y yum-utils
//第二步
yum-config-manager \
    --add-repo \
    http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  1. 安装Docker Engine和容器
//第一步
yum makecache fast
//第二步
yum install docker-ce docker-ce-cli containerd.io
  1. 启动docker
//启动
systemctl start docker
//查看版本
docker version
  1. 运行HelloWorld镜像
#先在/etc/docker/XXX.json下添加阿里云镜像,注意通过逗号隔开
 "registry-mirrors": ["https://alzgoonw.mirror.aliyuncs.com"] 

// 重启docker
 systemctl restart docker
//重新跑helloworld
 docker run hello-world

在这里插入图片描述

通过Docker部署SpringBoot项目

  1. 准备一个简单的SpringBoot项目,并打成jar包
@RestController
public class TableTest {

    @GetMapping("/test")
    public String test(){
        return "hello,docker";
    }

}
  1. 在Linux系统的/目录新建文件夹,通过xftp将jar包传入该目录下
mkdir  dockerFile

3:创建DockerFile文件

在这里插入图片描述

将下面内容复制到DockerFile中

FROM java:8

VOLUME /tmp

ADD (打好的jar包名)  /(打好的jar包名)

RUN bash -c 'touch /(打好的jar包名)'

ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/(打好的jar包名)"]

  1. 使用docker打包镜像
docker build -f DockerFile -t (镜像名字) .   #注意镜像名和.需要空格
#使用docker images查看镜像
docker images
  1. 运行镜像产生容器
docker run -p 8080:8080 (镜像名)  #前面的8080表示主机端口 后面的8080为容器端口

#后台启动
docker run -d -p 8080:8080 (镜像名)
  1. 通过ip+8080/test访问

在这里插入图片描述

  1. 停止容器
#查看运行的容器
docker ps
#停止容器
docker stop 容器ID	#也就是通过docker ps查看时CONTAINER ID的值
<think>好的,用户问的是如何在Windows系统中通过Docker容器化并运行Spring Boot项目。首先,我需要回忆一下相关的步骤。根据提供的引用内容,用户需要安装Docker,创建Dockerfile,构建镜像,然后运行容器。 首先,安装Docker。引用[1]提到要确保安装Docker,所以第一步应该是指导用户去官网下载Docker Desktop for Windows,并启用Hyper-V和WSL2,这点很重要,因为Windows环境需要这些支持。然后,用户可能需要配置Docker,比如设置共享磁盘和内存资源。 接下来,创建Spring Boot项目。用户可能已经有项目,如果没有,需要引导他们使用Spring Initializr创建一个。这里可能需要提到添加Web依赖,比如Spring Web,以便生成一个简单的应用。 然后是编写Dockerfile。根据引用[1]和引用[2],Dockerfile的内容应该包括基础镜像、复制JAR文件、入口点等。需要确保用户将构建好的JAR文件复制到镜像中,并正确设置启动命令。 构建Docker镜像时,用户需要在项目根目录运行docker build命令,注意-t参数指定镜像名和标签。之后,用docker run命令运行容器,映射端口,比如8080:8080。 用户可能还需要用到Docker Compose,特别是如果项目依赖其他服务如MySQL或Redis。引用[3]和[4]提到Docker Compose可以管理多个容器,所以可能需要编写docker-compose.yml文件,定义服务和依赖关系。这样用户可以通过一个命令启动所有服务。 需要注意的问题包括确保Dockerfile中的JAR文件名正确,端口是否冲突,以及构建镜像时的上下文路径。此外,如果用户使用GraalVM原生镜像编译,可能需要更复杂的Docker配置,如引用[2]提到的,但用户的问题可能不需要这一步,除非他们特别需要优化启动时间。 可能用户会遇到的问题包括环境配置错误,比如WSL2未正确安装,或者Docker Desktop无法启动。这时候需要提示他们检查系统要求和配置。另外,构建过程中如果依赖其他服务,网络配置和容器间的通信也是需要注意的。 最后,生成相关问题时要覆盖安装、配置、优化和依赖管理等方面,帮助用户进一步学习。</think>### 分步说明:在 Windows 系统中通过 Docker 容器化并运行 Spring Boot 项目 #### 1. **安装 Docker 环境** - **下载 Docker Desktop**:访问 [Docker 官网](https://www.docker.com/)下载 Windows 版本,安装后需启用 Hyper-V 和 WSL2 支持[^1]。 - **验证安装**:在 PowerShell 中运行 `docker --version`,确认输出类似 `Docker version 20.10.21`。 #### 2. **准备 Spring Boot 项目** - 通过 [Spring Initializr](https://start.spring.io/) 生成项目(例如选择 Java 17、Spring Web 依赖)。 - 本地构建项目:在项目根目录执行 `mvn clean package`,生成 `target/*.jar` 文件。 #### 3. **编写 Dockerfile** ```dockerfile # 使用 OpenJDK 17 作为基础镜像 FROM openjdk:17-jdk-slim # 设置工作目录 WORKDIR /app # 复制构建好的 JAR 文件到镜像中 COPY target/springboot-demo-0.0.1-SNAPSHOT.jar app.jar # 暴露 Spring Boot 默认端口 EXPOSE 8080 # 启动命令 ENTRYPOINT ["java", "-jar", "app.jar"] ``` #### 4. **构建 Docker 镜像** ```bash # 在项目根目录执行(注意最后的点表示当前上下文路径) docker build -t springboot-app:1.0 . ``` - 若出现 `COPY failed` 错误,检查 `target` 目录是否存在 JAR 文件。 #### 5. **运行容器** ```bash # 映射主机 8080 端口到容器 8080 端口 docker run -p 8080:8080 springboot-app:1.0 ``` - 访问 `http://localhost:8080` 验证应用状态。 #### 6. **使用 Docker Compose 管理依赖(可选)** 若需整合 MySQL、Redis 等服务,创建 `docker-compose.yml`: ```yaml version: '3' services: app: build: . ports: - "8080:8080" depends_on: - mysql mysql: image: mysql:8.0 environment: MYSQL_ROOT_PASSWORD: root volumes: - mysql_data:/var/lib/mysql volumes: mysql_data: ``` - 启动服务:`docker-compose up -d` ### 关键配置说明 - **多阶段构建优化镜像**:可通过多阶段构建减少镜像大小(分离编译和运行环境)。 - **容器日志查看**:`docker logs <容器ID>` 用于调试启动失败问题。 - **网络配置**:默认容器间通过 Docker 网络互通,可直接用服务名(如 `mysql`)作为主机名访问[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值