Docker 微服务实战

1. 通过IDEA新建一个普通微服务模块

1.1 建Module

docker_boot

1.2 改写pom

<? xml version**="1.0"encoding="UTF-8"?>
<**project
xmlns**="http://maven.apache.org/POM/4.0.0"****xmlns:****xsi****="http://www.w3.org/2001/XMLSchema-instance"****xsi****:schemaLocation****="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"**>

<modelVersion>4.0.0</modelVersion>

<parent>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-parent</artifactId>

<version>2.5.6</version>

<relativePath/>

</parent>

<groupId>com.atguigu.docker</groupId>

<artifactId>docker_boot</artifactId>

<version>0.0.1-SNAPSHOT</version>

<properties>

<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

<maven.compiler.source>1.8</maven.compiler.source>

<maven.compiler.target>1.8</maven.compiler.target>

<junit.version>4.12</junit.version>

<log4j.version>1.2.17</log4j.version>

<lombok.version>1.16.18</lombok.version>

<mysql.version>5.1.47</mysql.version>

<druid.version>1.1.16</druid.version>

<mapper.version>4.1.5</mapper.version>

<mybatis.spring.boot.version>1.3.0</mybatis.spring.boot.version>

</properties>

<dependencies>

<!--SpringBoot通用依赖模块--><dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-web</artifactId>

</dependency>

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-actuator</artifactId>

</dependency>

<!--test--><dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-test</artifactId>

<scope>test</scope>

</dependency>

</dependencies>

<build>

<plugins>

<plugin>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-maven-plugin</artifactId>

</plugin>

<plugin>

<groupId>org.apache.maven.plugins</groupId>

<artifactId>maven-resources-plugin</artifactId>

<version>3.1.0</version>

</plugin>

</plugins>

</build>

</project>

1.3 写yml

server.port=6001

1.4 主启动

packagecom.atguigu.docker;

importorg.springframework.boot.SpringApplication;
importorg.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public classDockerBootApplication

{

public static voidmain(String\[\] args)

{

SpringApplication.run (DockerBootApplication.class, args);

}

}

1.5 业务类

packagecom.atguigu.docker.controller;

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

importjava.util.UUID;

/**
*
@auther zzyy
*
@create 2021-10-25 17:43
*/

@RestController
public classOrderController

{

@Value("${server.port}")

privateString port;

@RequestMapping("/order/docker")

publicString helloDocker()

{

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

}

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

publicString index()

{

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

}

}

2. 通过dockerfile 发布微服务部署到docker容器

2.1 idea工具里面搞定微服务jar包

docker_boot-0.0.1-SNAPSHOT.jar

2.2 编写dockerfile

基础镜像使用java

FROM java:8

作者

MAINTAINER zzyy

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

VOLUME /tmp

将jar包添加到容器中并更名为zzyy_docker.jar

ADD docker_boot-0.0.1-SNAPSHOT.jar zzyy_docker.jar

运行jar包

RUN bash -c 'touch /zzyy_docker.jar'

ENTRYPOINT "java","-jar","/zzyy_docker.jar"

#暴露6001端口作为微服务

EXPOSE 6001

docker build -t zzyy_docker:1.6 .

2.3 构建镜像

2.4 运行容器

docker run -d -p 6001:6001 zzyy_docker:1.6

2.5 访问测试

相关推荐
码间留白6 小时前
手把手把 GitHub 推上阿里云 ECS:Actions CI/CD 全链路避坑实录(折腾好几天,到 2 分钟见绿)
运维·阿里云·ci/cd·docker·devops·github actions
Vex2une6 小时前
Docker Desktop WSL2后端:2026年性能调优与避坑实战指南
windows·docker·desktop·gpu容器·容器开发·virtiofs·buildkit
程序员老赵7 小时前
Docker 部署青龙面板:轻松搭建定时任务管理平台
前端·docker·开源
TTATTC7 小时前
为什么单会话聊天做不好复杂工程?Claude Code 创作者的并发 Worktree 与记忆闭环实践
docker·开源
TTATTC8 小时前
状态机驱动长事务,还是 DAG 编排高并发?高可靠业务流程引擎的双核架构设计
docker·开源
殷忆枫8 小时前
告别依赖地狱!在 Ubuntu 上用 Docker 极速部署 Home Assistant 与 MQTT,并接入 Siri 与嵌入式 C 终端
linux·ubuntu·docker
千桐科技9 小时前
qModel算法模型平台功能解析:从源码到 Docker 镜像,部署能自动完成哪些工作?
运维·docker·容器·qmodel
江湖有缘11 小时前
Docker实战 | 使用Docker部署Imagor Studio图片编辑工具
java·docker·eureka
软件工程师文艺12 小时前
从微服务到 Serverless:OAM 模型如何统一应用描述与交付
微服务·架构·serverless
Xxtaoaooo12 小时前
私人日记不想散落在多个App?我用DailyTxT把记录、搜索和图片都放进自己的NAS
docker·nas·dailytxt