Docker发布微服务

简介: 简介:本文介绍如何搭建SpringBoot项目并容器化部署。通过Maven创建工程,编写Controller和配置文件,打包成jar后,利用Dockerfile构建镜像,最终运行在Docker容器中,实现微服务的快速发布与部署,便于后续扩展与维护。(238字)

搭建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

相关文章
|
7月前
|
Java Maven 数据安全/隐私保护
Nexus仓库
本文介绍Nexus Repository Manager OSS在Linux环境下的安装与配置,包括JDK8环境搭建、Nexus解压启动、管理员登录、密码重置、仓库创建及Docker部署方式。涵盖Maven、Npm、Docker私仓配置,支持匿名访问、数据持久化、资源上传下载等核心功能,适用于企业级制品库管理。
|
7月前
|
缓存 Ubuntu Linux
Docker安装
本教程介绍Docker在CentOS和Ubuntu系统中的安装与配置,包括卸载旧版本、配置yum源或软件源、安装引擎、启动服务、离线安装及系统服务配置。还涵盖daemon.json参数设置、日志管理、镜像加速、命令补全等功能,助你快速部署并优化Docker环境。(238字)
|
7月前
|
Ubuntu Linux Shell
Docker镜像
镜像是包含软件运行所需代码、依赖、配置的轻量级可执行包。Docker通过联合文件系统(如AUFS、OverlayFS)实现分层架构,底层为bootfs和rootfs,镜像层只读,容器启动时添加可写容器层,实现资源隔离与高效复用,便于应用打包、分发和迁移。(238字)
|
7月前
|
Java
1.常见加载顺序
本示例展示了Java中各类代码块的执行顺序:静态代码块随类加载仅执行一次,优先于主函数;局部代码块在方法内按顺序执行;构造代码块每次创建对象前执行,随后调用构造器。输出结果体现三者优先级:静态 > 局部 > 构造。
|
7月前
|
Java 大数据
ArrayList扩容机制
ArrayList的add方法添加元素时,先调用ensureCapacityInternal()确保容量。首次添加时,minCapacity为1,经Math.max()后扩容至10。通过grow()方法实现动态扩容,每次扩容为原容量的1.5倍(oldCapacity + (oldCapacity >> 1))。当元素数超过当前容量时触发grow(),如第11个元素加入时,容量从10扩至15。注意:length用于数组,length()用于字符串,size()用于集合。
|
7月前
|
运维 Kubernetes Java
物理部署图
物理部署图描述系统运行时的硬件配置与软件部署结构,展现节点、构件、物件及连接关系,帮助理解分布式系统的网络架构与部署方案,是开发与运维协作的重要工具。
|
7月前
|
JSON Shell 数据格式
Registry搭建docker私仓
Docker Registry是官方提供的私有镜像仓库构建工具,基于Docker镜像运行。通过拉取registry镜像并启动容器,可快速搭建私服。需配置daemon.json添加insecure-registries以支持HTTP访问,重启Docker服务后,使用tag标记镜像并push至私仓,通过curl验证目录结构,最后可pull镜像测试拉取功能,实现镜像的本地化管理与分发。
|
7月前
|
Linux Go 虚拟化
Docker简介
Docker是基于Go语言的开源项目,实现“一次镜像,处处运行”。它通过容器化技术封装应用及依赖,对比传统虚拟机,具有启动快、资源占少、效率高等优势。基于Linux内核隔离机制,Docker以进程形式运行容器,利用镜像、容器、仓库三大组件,实现应用的高效部署与管理,广泛应用于开发、测试与生产环境。
|
7月前
|
关系型数据库 MySQL Shell
Docker下载加速
本文介绍Docker下载加速的两种方法:一是使用网易数帆、阿里云等镜像仓库,如`docker pull hub.c.163.com/library/mysql`;二是配置阿里云镜像加速器,通过修改`/etc/docker/daemon.json`添加加速地址,实现快速拉取官方镜像。此外,若使用代理上网,还可配置HTTP/HTTPS代理,提升镜像下载效率。
|
7月前
|
存储 NoSQL 算法
Docker安装Redis
本文介绍Docker部署Redis 6.0.8的单机与集群方案,涵盖配置文件映射、数据持久化、三种分布式存储算法(哈希取余、一致性哈希、哈希槽),重点解析Redis集群的16384个哈希槽设计原理及3主3从集群搭建、读写重定向、扩容缩容操作,助你掌握高可用Redis集群管理。