更新Docker运行的项目

更新项目源码

假如要在代办事项项目中将下图位置的内容换成:“你还没有待办事项!在上面加一个!”
image-20220616145233827

  1. src/static/js/app.js文件中,更新第 56 行代码:

    <p className="text-center">你还没有待办事项!在上面加一个!</p>
    
  2. 让我们使用我们之前使用的相同命令来构建我们更新版本的图像。

    docker build -t getting-started .
    
  3. 让我们使用更新后的代码启动一个新容器。

    docker run -dp 3000:3000 getting-started
    

可能会看到这样的错误(ID 会有所不同):

docker: Error response from daemon: driver failed programming external connectivity on endpoint laughing_burnell 
(bb242b2ca4d67eba76e79474fb36bb5125708ebdabd7f45c8eaf16caaabde9dd): Bind for 0.0.0.0:3000 failed: port is already allocated.

我们无法启动新容器,因为我们的旧容器仍在运行。这是因为该容器正在使用主机的端口 3000,并且机器上只有一个进程(包括容器)可以监听特定端口。为了解决这个问题,我们需要移除旧容器。

更换我们的旧容器

要移除一个容器,首先需要停止它。一旦停止,就可以将其移除。我们有两种方法可以移除旧容器。

使用 CLI 删除容器
  1. docker ps使用命令获取容器的 ID 。

    docker ps
    
  2. 使用docker stop命令停止容器。

    docker stop <the-container-id>
    
  3. 容器停止后,可以使用docker rm命令将其删除。

    docker rm <the-container-id>
    

也可以通过在命令中添加“force”,标志在单个命令中停止和删除容器。

docker rm -f 容器ID

image-20220616150927795

使用 Docker 仪表板删除容器

如果你打开 Docker 仪表板,你可以通过两次点击来移除一个容器!这肯定比查找容器 ID 并删除它要容易得多。

  1. 打开仪表板后,将鼠标悬停在应用容器上,可以看到一组操作按钮出现在右侧。
  2. 单击垃圾桶图标以删除容器。
  3. 确认删除,就完成了!
    image-20220616151159062
启动我们更新的应用容器
  1. 现在,启动更新的应用程序。

    docker run -dp 3000:3000 getting-started
    
  2. 在http://localhost:3000上刷新浏览器
    image-20220616151309551

### 回答1: 要在Docker运行Spring Boot项目,您需要完成以下步骤: 1. 创建Dockerfile:在项目根目录中创建一个名为Dockerfile的文件,并添加以下内容: ``` FROM openjdk:8-jdk-alpine VOLUME /tmp ADD target/<your-project-name>.jar app.jar ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"] ``` 2. 构建Docker镜像:在终端中进入项目根目录,并运行以下命令: ``` docker build -t <your-image-name> . ``` 3. 运行Docker容器运行以下命令来启动Docker容器: ``` docker run -p 808:808 <your-image-name> ``` 现在,您的Spring Boot应用程序应该在Docker容器运行,并且可以通过http://localhost:808访问。 ### 回答2: Docker是一种流行的容器化平台,它能够将应用程序与其依赖的运行库和环境一起打包进一个镜像,使得应用程序可以在所有支持Docker的平台上运行,无需考虑底层系统的不同性。 Spring Boot是一个用于快速构建应用程序的开发框架,它具有自动配置、内嵌web容器等强大的特性,使得开发者能够快速开发、测试和部署应用程序。 将Spring Boot项目部署至Docker容器中,需要按照以下步骤进行: 1. 编写dockerfile文件 在项目根目录中创建一个名为dockerfile的文件,用于指定如何构建Docker镜像。下面是一个示例: ``` FROM openjdk:14-alpine VOLUME /tmp ARG JAR_FILE=target/*.jar COPY ${JAR_FILE} app.jar ENTRYPOINT ["java","-jar","/app.jar"] ``` 在上述文件中,我们首先指定基础镜像为openjdk:14-alpine,然后指定一个工作目录/tmp,接着利用ARG关键字指定应用的JAR文件名,然后将JAR文件复制到容器中,最后指定容器启动时执行的命令。 2. 构建Docker镜像 使用以下命令在当前目录下构建Docker镜像: ``` docker build -t my-app-image . ``` 其中,-t选项为镜像指定名称和标签,最后的"."表示dockerfile所在目录。 3. 运行Docker容器 运行以下命令以创建一个新容器启动应用程序: ``` docker run -p 8080:8080 my-app-image ``` 上述命令将容器中的8080端口映射到主机的8080端口,使得应用程序可以通过http://localhost:8080访问。 4. 查看Docker容器 使用以下命令查看当前正在运行容器: ``` docker ps ``` 可以看到刚才启动容器ID、镜像名称、命令、状态等信息。 通过以上步骤,就可以将Spring Boot项目部署至Docker容器运行,实现应用程序的可移植性和高可靠性。同时,Docker还提供了大量的管理和监控工具,使得容器的管理变得更加简单和便捷。 ### 回答3: Docker是现代开发中不可或缺的一部分。通过Docker,您可以构建、部署和管理容器化的应用程序。Spring Boot是一个用于构建Java应用程序的框架,可以通过Docker运行Spring Boot项目。下面我们将详细讨论如何运行Spring Boot项目。 第一步:创建Spring Boot应用程序 首先,我们需要创建一个基于Spring Boot的应用程序。完成以后,将应用程序打包成可执行的JAR包。 第二步:编写Dockerfile 我们需要编写Dockerfile文件来构建Docker映像文件。Dockerfile是定义Docker映像文件构建过程的脚本。在Dockerfile中,我们需要指定要使用的基础映像、将JAR包添加到映像中、指定容器运行该应用程序时使用的端口号等。以下是一个简单的Dockerfile示例: ``` FROM openjdk:8-jdk-alpine MAINTAINER 作者 VOLUME /tmp ARG DEPENDENCY=target/dependency COPY ${DEPENDENCY}/BOOT-INF/lib /app/lib COPY ${DEPENDENCY}/META-INF /app/META-INF COPY ${DEPENDENCY}/BOOT-INF/classes /app ENTRYPOINT ["java","-cp","app:app/lib/*","com.example.MyApplication"] ``` 第三步:构建Docker映像 我们需要使用docker build命令将Dockerfile转换为Docker映像: ``` $ docker build -t my_image . ``` 这个命令将为我们的应用程序创建一个名为“my_image”的Docker映像文件。 第四步:运行Docker映像 现在,我们只需要使用docker run命令来运行这个映像并启动应用程序。我们还需要使用-p参数指定要映射到主机的端口号。 ``` docker run -p 8080:8080 my_image ``` 现在,我们的Spring Boot应用程序已经在Docker容器运行了,我们可以通过浏览器访问它。只需在浏览器中输入http://localhost:8080即可访问我们的应用程序。 总结 通过Docker容器化Spring Boot应用程序,我们可以更容易地部署、管理和升级应用程序。我们可以使用Docker构建和保存应用程序的镜像,以便在需要时轻松部署和运行应用程序。以上是如何运行Spring Boot项目的一个简单示例,但您可以根据自己的需要进行修改。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

雨云21

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值