-Docker发布微服务

简介: 本教程介绍如何将SpringBoot微服务打包并发布到Docker容器。首先创建Maven项目,编写Controller接口与配置文件,通过Maven打包成jar;再将jar上传服务器,编写Dockerfile构建镜像,最终运行容器并映射端口6001,实现微服务的Docker化部署。

12-Docker发布微服务
搭建SpringBoot项目
搭建一个简单的SpringBoot项目:
创建maven工程,pom为:

新建Module,pom为:

编写一个配置文件

编写主启动类

编写一个Controller
Java
运行代码
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
package com.study.controller;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;

import java.util.UUID;

/**

  • @author tengyer 2022/05/06 16:35
    */
    @RestController
    public class OrderController {
    @Value("${server.port}")
    private String port;

    @RequestMapping("/order/docker")
    public String helloDocker() {

     return "hello world \t" + port + "\t" + UUID.randomUUID().toString();
    

    }

    @RequestMapping(value = "/order/index", method = RequestMethod.GET)
    public String index() {

     return "服务端口号:" + "\t" + port + "\t" + UUID.randomUUID().toString();
    

    }
    }

在Idea中运行没有问题时,将其使用maven的package打成jar包。
发布微服务项目到Docker容器
将项目jar包上传到服务器
编写Dockerfile
Dockerfile
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
FROM openjdk:8-oracle
MAINTAINER lee

在主机 /var/lib/docker目录下创建一个临时文件,并链接到容器的 /tmp

VOLUME /tmp

将jar包添加到容器中,并命名为 springboot_docker.jar

ADD docker_boot-1.0-SNAPSHOT.jar /springboot_docker.jar

运行jar包

RUN bash -c 'touch /springboot_docker.jar'
ENTRYPOINT ["java", "-jar", "/springboot_docker.jar"]

SpringBoot项目配置的端口号为6001,需要将6001暴露出去

EXPOSE 6001

构建镜像
Shell
运行代码
复制代码
1
docker build -t springboot_docker:1.0 .

启动容器:
Shell
运行代码
复制代码
1
docker run -d -p 6001:6001 --name springboot springboot_docker:1.0

相关文章
|
2月前
|
NoSQL 关系型数据库 MySQL
Docker-compose容器编排
Docker-Compose是Docker官方开源工具,通过docker-compose.yml文件定义多容器应用,实现一键编排、启动、停止。支持服务间依赖配置,简化微服务部署流程,提升开发运维效率。
|
2月前
|
缓存 负载均衡 Java
优雅启动:如何避免流量打到没有启动完成的节点?
本文介绍RPC服务优雅启动的两大核心机制:**启动预热**与**延迟暴露**。通过启动预热,调用方按时间动态提升新节点权重,避免刚启动的“冷”服务因高负载导致请求超时;结合延迟暴露,在应用完全启动并完成资源预加载后才注册到注册中心,确保服务上线即稳定。二者协同实现流量平滑接入,保障系统可靠性。
|
2月前
|
Java Nacos Sentinel
SpringCloud 微服务解决方案:企业级架构实战
全面介绍 SpringCloud 微服务解决方案,涵盖服务注册发现、网关路由、熔断限流、分布式事务等企业级实践
|
3月前
|
消息中间件 缓存 NoSQL
Redis + Java 架构实战:从锁机制到消息队列的整合
本文深入解析Redis与Java的整合实践,涵盖分布式锁、消息队列、缓存策略、高性能数据结构及容错机制。结合电商场景,助力构建高并发、高可用的分布式系统。
218 8
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
SpringAI+DeepSeek大模型应用开发
本教程以SpringAI为核心,讲解Java与大模型(如DeepSeek)融合开发,助力传统项目智能化。介绍AI基础、Transformer原理及SpringAI应用,推动Java在AI时代焕发新生。适合Java程序员入门大模型开发。
242 2
|
2月前
|
Java Maven 数据安全/隐私保护
Nexus仓库
Nexus是一款开源仓库管理工具,支持Maven、NPM、Docker等格式。本文介绍其在Linux与Docker环境下的安装配置,包括JDK部署、OSS版下载、仓库创建、用户权限管理及密码重置方法,并涵盖私服搭建、持久化存储、资源上传与匿名访问设置,助力企业高效构建私有仓库体系。
|
2月前
|
关系型数据库 MySQL Shell
Docker
本文介绍Docker下载加速的两种方法:一是使用网易数帆、阿里云等镜像仓库,如`hub.c.163.com/library/mysql`;二是配置阿里云专属加速器地址至`/etc/docker/daemon.json`,提升官方镜像拉取速度。同时支持在`daemon.json`中设置HTTP/HTTPS代理,适用于科学上网环境。配置后重启Docker服务即可生效,显著提升镜像下载效率。(239字)
|
2月前
|
缓存 Java 关系型数据库
微服务原理篇(XXLJOB-幂等-MySQL)
本课程深入讲解微服务架构下的任务调度与数据一致性方案,涵盖XXL-JOB分布式调度原理、幂等性设计、MySQL存储引擎对比、索引优化及SQL调优策略。通过实战掌握热点数据缓存预热、分片广播任务处理、避免重复执行等核心技能,提升系统性能与可靠性。(238字)
|
Kubernetes 监控 安全
在K8S中,滚动更新的过程?
在K8S中,滚动更新的过程?
|
关系型数据库 MySQL Docker
《docker高级篇(大厂进阶):5.Docker-compose容器编排》包括是什么能干嘛去哪下、Compose核心概念、Compose使用三个步骤、Compose常用命令、Compose编排微服务
《docker高级篇(大厂进阶):5.Docker-compose容器编排》包括是什么能干嘛去哪下、Compose核心概念、Compose使用三个步骤、Compose常用命令、Compose编排微服务
750 6