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

1、建Module

docker_boot

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>

3、写YML

application.properties

server.port=6001

4、主启动

package com.atguigu.docker;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;/*** @author String-int* @create 2022-04-19 0:28*/
@SpringBootApplication
public class DockerBootApplication {public static void main(String[] args) {SpringApplication.run(DockerBootApplication.class, args);}}

5、业务类

package com.atguigu.docker.controller;/*** @author String-int* @create 2022-04-19 0:29*/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;@RestController
public class OrderController {@Value("${server.port}")private String port;@RequestMapping("/order/docker")public String helloDocker() {return "hello docker" + "\t" + port + "\t" + UUID.randomUUID().toString();}@RequestMapping(value = "/order/index", method = RequestMethod.GET)public String index() {return "服务端口号: " + "\t" + port + "\t" + UUID.randomUUID().toString();}
}

把上面的项目打成jar包

新建一个文件夹

[root@630ab08a6973 /]# mkdir mydocker
[root@630ab08a6973 /]# pwd
/
[root@630ab08a6973 /]# cd mydocker
[root@630ab08a6973 mydocker]# pwd
/mydocker
[root@630ab08a6973 mydocker]#
[root@630ab08a6973 mydocker]# ll
total 0
[root@630ab08a6973 mydocker]# 

将jar上传到mydocker文件夹下

[root@localhost mydocker]# ll
总用量 19060
-rw-r--r--. 1 root root 19514767 4月  19 00:47 docker_boot-0.0.1-SNAPSHOT.jar
[root@localhost mydocker]# 

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

1、IDEA工具里面搞定微服务jar包

docker_boot-0.0.1-SNAPSHOT.jar

2、编写Dockerfile

Dockerfile内容

# 基础镜像使用java 。FROM java:8不行得话换成 FROM openjdk:8
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  #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

将微服务jar包和Dockerfile文件上传到同一个目录下/mydocker

[root@localhost mydocker]# pwd
/mydocker
[root@localhost mydocker]# ll
总用量 19060
-rw-r--r--. 1 root root 19514767 4月  19 00:47 docker_boot-0.0.1-SNAPSHOT.jar
drwxr-xr-x. 2 root root       19 4月  19 01:05 u
[root@localhost mydocker]# vim Dockerfile
[root@localhost mydocker]#
[root@localhost mydocker]# ll
总用量 19064
-rw-r--r--. 1 root root 19514767 4月  19 00:47 docker_boot-0.0.1-SNAPSHOT.jar
-rw-r--r--. 1 root root      455 4月  19 01:14 Dockerfile
drwxr-xr-x. 2 root root       19 4月  19 01:05 u
[root@localhost mydocker]# 

3、构建镜像

docker build -t zzyy_docker:1.6 .  #镜像名字zzyy_docker 版本号是1.6
[root@localhost mydocker]# docker build -t zzyy_docker:1.6 .
Sending build context to Docker daemon  19.52MB
Step 1/7 : FROM java:8
8: Pulling from library/java
5040bd298390: Pull complete
fce5728aad85: Pull complete
76610ec20bf5: Pull complete
60170fec2151: Pull complete
e98f73de8f0d: Pull complete
11f7af24ed9c: Pull complete
49e2d6393f32: Pull complete
bb9cdec9c7f3: Pull complete
Digest: sha256:c1ff613e8ba25833d2e1940da0940c3824f03f802c449f3d1815a66b7f8c0e9d
Status: Downloaded newer image for java:8---> d23bdf5b1b1b
Step 2/7 : MAINTAINER zzyy---> Running in c1d196eb32bb
Removing intermediate container c1d196eb32bb---> f332e65b90b4
Step 3/7 : VOLUME /tmp---> Running in fddc0c90ca6a
Removing intermediate container fddc0c90ca6a---> 8ef8137c1551
Step 4/7 : ADD docker_boot-0.0.1-SNAPSHOT.jar zzyy_docker.jar---> c70f0b845c53
Step 5/7 : RUN bash -c 'touch /zzyy_docker.jar'---> Running in 5a9db31aa63a
Removing intermediate container 5a9db31aa63a---> 4378f0b4fc9b
Step 6/7 : ENTRYPOINT ["java","-jar","/zzyy_docker.jar"]---> Running in 98b516524ec7
Removing intermediate container 98b516524ec7---> 416cffc8e151
Step 7/7 : EXPOSE 6001---> Running in 8338723f3cdb
Removing intermediate container 8338723f3cdb---> c366639d316c
Successfully built c366639d316c # Successfully 表示成功
Successfully tagged zzyy_docker:1.6
[root@localhost mydocker]# 

打包成镜像文件

4、运行容器

 docker run -d -p 6001:6001 zzyy_docker:1.6
[root@localhost mydocker]# docker run -d -p 6001:6001 c366639d316c91a48ac55a211bd2c808eaa6183621cf8e2bb43328112934444a827bf5d4c5bf
[root@localhost mydocker]#
[root@localhost mydocker]# 

在这里可能会出问题就是防火墙没关

关闭防火墙再重启docker

[root@localhost mydocker]# systemctl stop firewalld # 关闭
[root@localhost mydocker]# systemctl restart docker #重启docker
[root@localhost mydocker]# docker run -d -p 6001:6001 c366639d316c #再次执行运行容器

5、访问测试

方法一、在Windows上
http://CentOs7的IP地址:6001/order/docker

http://CentOs7的IP地址:6001/order/index

方法二、在CentOs7上
curl 127.0.0.1:6001/order/docker

curl 127.0.0.1:6001/order/index

[root@localhost mydocker]# curl 127.0.0.1:6001/order/docker
hello docker    6001    d5e9ea87-3a04-4e11-b5b0-996dbdb4e8b7[root@localhost mydocker]# 

Docker 高级 Docker微服务实战相关推荐

  1. Docker与微服务实战2022:基础篇

    Docker与微服务实战2022:高级篇 目录 一.简介 二.安装docker 三.操作命令 3.1.帮助命令 3.2.镜像命令 3.3.容器命令 四.镜像分层 五.本地镜像推送到阿里云 1.阿里云镜 ...

  2. 『高级篇』docker容器来说微服务优势和不足(四)

    原创文章,欢迎转载.转载请注明:转载自IT人故事会,谢谢! 原文链接地址:『高级篇』docker容器来说微服务优势和不足(四) 来看看微服务有哪些优势和不足. 优势 独立性 从构建部署,扩容收容,容错 ...

  3. Docker——使用docker工具管理软件/组件的运行,镜像、容器、数据卷的基本概念,常用指令,使用docker搭建Java微服务运行环境

    Docker--使用docker工具管理软件/组件的运行,镜像.容器.数据卷的基本概念,常用指令,使用docker搭建Java微服务运行环境 一.docker的安装和卸载 1.卸载 2.安装 3. 导 ...

  4. 基于docker部署的微服务架构(九): 分布式服务追踪 Spring Cloud Sleuth

    为什么80%的码农都做不了架构师?>>>    前言 微服务架构中完成一项功能经常会在多个服务之间远程调用(RPC),形成调用链.每个服务节点可能在不同的机器上甚至是不同的集群上,需 ...

  5. 基于Gitlab Jenkins Docker集群 微服务搭建自动化部署平台

    随着公司应用系统的不断增多,原有手工部署流程越来越不满足上线的需求.为了各个系统能快速迭代与测试,减少上线流程时间和人为出错,迫切需要一套自动化部署系统. 转载原文:https://luoji.liv ...

  6. Docker学习篇——使用Docker部署账单微服务项目

    Docker概念 Docker 是一个开源的应用容器引擎 诞生于 2013 年初,基于 Go 语言实现, dotCloud 公司出品(后改名为Docker Inc) Docker 可以让开发者打包他们 ...

  7. 基于Kubernetes、Docker的机器学习微服务系统设计——完整版

     内容提要 1 概述 2 系统介绍 2.1 功能全览 2.2 核心功能 3 系统架构 3.1 云化架构图 3.2 架构说明 4 云化部署 4.1 部署图 4.2 部署说明 4.3 部署实例 5 设计实 ...

  8. 【新书推荐】《ASP.NET Core微服务实战:在云环境中开发、测试和部署跨平台服务》 带你走近微服务开发...

    <ASP.NET Core 微服务实战>译者序:https://blog.jijiechen.com/post/aspnetcore-microservices-preface-by-tr ...

  9. Spring Cloud微服务实战:外卖订餐系统

    Spring Cloud微服务实战:外卖订餐系统 项目需求 客户端:针对普通用户, 用户登录.用户退出.菜品订购.我的订单. 后台管理系统:针对管理员, 管理员登录.管理员退出.添加菜品.查询菜品.修 ...

  10. Spring Cloud微服务实战:手把手带你整合eurekazuulfeignhystrix(附源码)

    Spring Cloud微服务实战:手把手带你整合eureka&zuul&feign&hystrix(附源码) Spring Cloud简介 Spring Cloud是一个基于 ...

最新文章

  1. html的css样式中表示后代选择器,html添加css——样式选择器
  2. 论文笔记之:Deep Attributes Driven Multi-Camera Person Re-identification
  3. Python 编程快速上手 第十五章 保持时间,计划任务和启动程序
  4. REVIT使用中遇到的各种问题汇总
  5. Hive 时间戳和日期相互转换
  6. bat替换文件中的字符串_JavaScript 中替换字符串的几种方法
  7. easy connect无法连接到服务端_故障分析 | 一次因为超过最大连接数的登陆限制
  8. C++中容器的使用(二)
  9. 文字识别成语音_广东人专属!微信语音转文字可以识别粤语了!
  10. html汉字在ie11中乱码,你好 我电脑 IE11  网页下拉的键都变成的中文乱码 例如“马夬”“邢”之类的中文乱码...
  11. 基于stm32 ESP8266WiFi模块的基本通信
  12. 开启电脑卓越性能模式
  13. 教你如何卷积操作进行边缘检测,基础必备
  14. pygame 实现 pong 小游戏
  15. 基因表达数据处理-Ensembl ID转化为Gene symbol
  16. 【软考笔记】1. 计算机原理与体系结构
  17. 编译工具 Ninja 介绍
  18. Kafka的灵魂伴侣Logi-KafkaManger(2)之kafka针对Topic粒度的配额管理(限流)
  19. 嵌入式Linux的低功耗策略研究[转]
  20. set IDENTITY_INSERT on 和 off 的设置

热门文章

  1. 08.static、final、抽象、单例模式
  2. 如何定制一个智能洒水装置(养狗/养花人士请进)
  3. 各行业防雷工程和防雷接地的应用方案
  4. 强化学习--Prioritised Replay DQN
  5. android 之 ActionBar
  6. 【OpenGL学习笔记】地月系
  7. 压力测试工具Apache JMeter:11:搭建容器化分布式测试环境
  8. Git:git push 时 remote: No anonymous write access. fatal: Authentication failed for ....问题
  9. 《C++入门经典(第5版•修订版)》——2.7 作业
  10. 柚!音乐小程序 ---借鉴网易云APP设计(运用网易云真实Api)