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. ConcurrentHashMap的源码分析-JDK1.7和Jdk1.8版本的变化
  2. window10安装python2.7_window10下python2.7安装pip报错
  3. Elasticsearch生态技术峰会 | 阿里云Elasticsearch云原生内核
  4. e1载波把32个信道按_什么是Wi-Fi 6?这12个问题为你讲清楚
  5. pythondraw解释_科学网—Draw figures with Python - 高琳琳的博文
  6. 最难学的10大编程语言排行榜,Java只排第三,第一名出乎意料
  7. WPF 特殊符号集合
  8. 语音服务器登录失败,设置语音邮件用户被锁定前的登录失败次数:Exchange 2013 帮助 | Microsoft Docs...
  9. 讯飞语音的使用及常遇到的问题
  10. 生成的SMILES以及对应的图像的评价指标【1】
  11. CSS Core CSS hack CSS优化
  12. 晶联讯1353显示屏测试程序
  13. hadoop2.7.2下载
  14. QT 项目 智能家居系统 上位机
  15. PHP免费发短信飞信类实现
  16. November 24th 周杰伦演唱会
  17. 牛客练习赛61 C 四个选项 dp\搜索+组合数学
  18. 三个月考研英语复习法
  19. 会计初级可以自己报名吗_初级会计考试可以自学吗?
  20. nopCommerce 介绍其它

热门文章

  1. 图像锐化原理及实现(PY)
  2. 视频教程-从Access数据库零基础入门到中文编程第1部-其他
  3. { ok : 0.0, errmsg : Authentication failed., code : 18, codeName : AuthenticationFailed
  4. 数据交易思享会 | 美创科技分享《数据交易准入安全》
  5. mybatis 在语句中使用to_char时报错
  6. 网址导出2015-12-31
  7. 年少不被层楼误,余生不羁尽自由
  8. [译]What is the Web's Model of Computation?
  9. 又见大裁员,WeWork计划裁员比例可能达25%!|一周硅谷热闻
  10. SpringBoot+vue实现前后端分离的餐厅点餐系统