(十) Docker微服务实战

news2024/9/26 5:14:57

Docker微服务实战

  • 一、IDEA新建一个普通微服务模块
  • 二、通过dockerfile发布微服务部署到docker容器
    • 2.1、打包模块
    • 2.2、编写 Dockerfile以及上传jar包
    • 2.3、构建镜像
    • 2.4、运行容器

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

建Module

docker_boot

在这里插入图片描述

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/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.feng</groupId>
    <artifactId>docker_boot</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>docker_boot</name>
    <description>Demo project for Spring Boot</description>
    <properties>
        <java.version>1.8</java.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <!--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>
    </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>

YML

server.port=6001

主启动类

package com.feng.docker_boot;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class DockerBootApplication {

    public static void main(String[] args) {
        SpringApplication.run(DockerBootApplication.class, args);
    }

}
在这里插入代码片

业务类

package com.feng.docker_boot.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 Feng
 * @Date 2022/12/31 21:14
 * @Version 1.0
 * @Description
 */
@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();
    }
}

访问测试

在这里插入图片描述

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

2.1、打包模块

打 jar 包上传到服务器

在这里插入图片描述
在这里插入图片描述

2.2、编写 Dockerfile以及上传jar包

Dockerfile

# 基础镜像使用java
FROM java:8
# 作者
MAINTAINER guai
# VOLUME 指定临时文件目录为/tmp,在主机/var/lib/docker目录下创建了一个临时文件并链接到容器的/tmp
VOLUME /tmp
# 将jar包添加到容器中并更名为guai_docker.jar
ADD docker_boot-0.0.1-SNAPSHOT.jar guai_docker.jar
# 运行jar包
RUN bash -c 'touch /guai_docker.jar'
ENTRYPOINT ["java","-jar","/guai_docker.jar"]
#暴露6001端口作为微服务
EXPOSE 6001

bash -c 'touch /guai_docker.jar' 也就是执行这个 touch 命令(对于已存在的文件修改这个文件的访问时间以及修改时间为当前时间,而不会修改文件的内容,没有文件就创建一个新的文件,其实这行命令也没啥用)
在这里插入图片描述

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

在这里插入图片描述

2.3、构建镜像

docker build -t guai_docker:1.6 .

在这里插入图片描述

2.4、运行容器

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

访问测试

记得放行安全组以及防火墙端口

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/131193.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2022年技术自媒体经验分享 —— 开始尝试认真做 B站 的一年后的复盘

文章目录前言一、回顾过去1、进驻B站2、进驻知识星球3、做全网最强的算法星球4、付费是道砍二、星球简介1、星主介绍2、星球简介三、星球内容1、九日集训2、付费专栏 - 免费阅读3、每月算法集训4、每日作业5、个人规划6、更优质的朋友圈7、向我提问 - 深思熟虑你的问题8、持续创…

微机原理真题错题整理2018,2019年

目录 2017年 选择 填空题 2018年 选择 填空题 编程题 2017年 选择 1:若一SRAM芯片的容量是10248位&#xff0c;除电源和接地外该芯片的其他引脚最少应为&#xff08;&#xff09; A:23 B:22 C:21 D:20 10242^1010根地址线 8位8根数据线 …

【SV】为什么需要异步复位?同步输入/异步输入、异步复位/同步复位(bad)、异步复位同步释放、同步系统/异步系统

【SV】为什么需要异步复位&#xff1f;同步输入/异步输入、异步复位/同步复位&#xff08;bad&#xff09;、同步系统/异步系统 1. 同步输入/异步输入&#xff08;synchronous and asynchronous inputs in sequential system&#xff09;为什么需要异步复位&#xff1f;1.1 异步…

k8s之基本环境准备

写在前面 本文看下学习k8s需要的基础环境&#xff0c;包括运行环境&#xff0c;docker等。 1&#xff1a;准备linux运行环境 环境&#xff1a;win10 虚拟化工具&#xff1a;VMware-workstation-full-15.1.0 linux&#xff1a;ubuntu-22.04.1-desktop-amd64.iso 。 安装完毕…

6)Django Cookies/Session,中间件,Nginx+uwsgi安装配置

目录 一 Django cookie 与 session Cookies Django 中 Cookie 的语法 Session(保存在服务端的键值对) 工作原理 实例 二 Django中间件 自定义中间件 自定义中间件类的方法 process_request 方法 process_response process_view process_exception 三 Django Nginxu…

【值得收藏】机器学习实战项目汇总(初级、中级、高级)

大家都知道&#xff0c;教科书上所学与实际操作还是有出入的&#xff0c;那关于机器学习有什么好的项目可以实操吗&#xff1f; 这次给大家分享一个涵盖面向初学者&#xff0c;中级专家和专家的23种机器学习项目创意&#xff0c;以获取有关该增长技术的真实经验。这些机器学习…

opencv-python常用函数解析及参数介绍(三)——图像滤波

图像滤波前言1.制作噪声生成椒盐噪声生成高斯噪声2.滤波均值滤波框滤波高斯滤波中值滤波总结前言 很多时候我们能拿到的图片并不是十分干净&#xff0c;有时会有一些噪声&#xff0c;这时我们就应该采用滤波的方式对他进行处理&#xff0c;本文将在一张干净的图片上生成噪声并…

OpenWrt19.07设置mac地址为芯片内置出厂地址

目录7628芯片的mac地址openwrt源码修改验证关联问题随机地址在何处生成mac地址生成时机最近发现所使用的openwrt19.07系统在htlk7628核心板上运行时&#xff0c;一旦恢复出厂设置或者重刷固件后对应的mac地址就会改变&#xff0c;猜测系统生成mac地址方式并非使用了芯片内部的m…

复习篇【类的构造方法与代码块的执行】

复习篇【类的构造方法与代码块的执行】&#x1f34e;一.构造方法&#x1f352;1.1 基本语法&#x1f352;1.2 this关键字&#x1f34e;二.代码块执行&#x1f352;2.1 什么是代码块&#x1f352;2.2 普通代码块&#x1f352;2.3 构造代码块&#x1f352;2.4 静态代码块&#x1…

VBScript (vbs) 脚本实例

欢迎小伙伴的点评✨✨ 文章目录前言一、vbs是什么&#xff1f;二、简单使用VBScript实例2.1、msgbox实例2.2、VBScript 的变量三、VBScript 输出文本及键盘按键到cmd3.1、cmd的FOR循环3.2、cmd的ping指令3.1、VBScript 批量输出到cmd命令代码实例四、总结前言 本文将会给大家带…

(二十九)Vue之回顾本地存储webStorage

文章目录webStorageLocalStoragesessionStorage改造TodoList案例为本地存储Vue学习目录 上一篇&#xff1a;&#xff08;二十八&#xff09;Vue之组件化编码流程 webStorage 使用HTML5可以在本地存储用户的浏览数据。 早些时候,本地存储使用的是 cookie。但是Web 存储需要更…

力扣2. 两数相加

给你两个 非空 的链表&#xff0c;表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的&#xff0c;并且每个节点只能存储 一位 数字。 请你将两个数相加&#xff0c;并以相同形式返回一个表示和的链表。 你可以假设除了数字 0 之外&#xff0c;这两个数都不会以 0 …

java实现随机获取封面图片

大家好&#xff0c;我是雄雄。 前言 最近阳的很多&#xff0c;大家都注意身体啊&#xff1b; 今天给大家分享一篇&#xff1a;java如何实现随机获取七牛云obs中的图片&#xff0c;主要用于给文章随机添加封面&#xff0c;因为固定一个封面的话&#xff0c;会显得很单一&#x…

企业注册信息如何识别真假?企业四要素API有什么好处?

企业注册信息越来越多&#xff0c;如何才能识别企业的真假&#xff0c;就需要有一套检验信息真伪的工具&#xff0c;这里我们分享的《企业四要素》就是用以检验企业真假的一种新型防伪应用供大家选择&#xff1a; 1、企业名称&#xff0c;2、法人名称&#xff0c;3、法人身份证…

第十三篇 1+X考证 Web前端测试题Laravel篇(新)

*Laravel中文网&#xff1a;Laravel 中文网 为 Web 工匠创造的 PHP 框架 单选题 1、Laravel中入口文件所在路径是&#xff08; B &#xff09; A、项目/app B、项目/public C、项目/routes D、项目/vendor [ 知识点&#xff1a;如图 ] 2、下面哪个是Laravel闪存数据的方法…

js实现九九乘法表(两种方法)

方法一&#xff1a; 观察规律&#xff1a; 第一个数每行都是自增1。 我们发下第二个数都是从1开始&#xff0c;依次递增1&#xff0c;永远不大于前面的数。 前面数字每自增一次&#xff0c;后面数字自增一轮。 我们可以用双重for循环&#xff0c;外层初始值设为i&#xff0…

高并发内存池项目(C++实战项目)

文章目录&#x1f384;项目介绍◎项目来源▶项目源码◎内存池相关知识1、池化技术2、内存池3、内存池主要解决的问题4、malloc&#x1f384;设计思路◎第一阶段–设计一个定长的内存池适应平台的指针方案◎第二阶段–高并发内存池整体框架设计1.线程缓存&#xff08;thread cac…

第十二届蓝桥杯嵌入式省赛试题以及题解

原题展示 通读本试题后&#xff0c;可以知本试题所涉及到的模块有LCD显示、LED指示、按键切换、串口收发、定时器的PWM输出五个部分&#xff0c;试题的总体变化不大。在试题要求的所有功能中&#xff0c;串口这部分是侧重点&#xff0c;它既要负责收发数据&#xff0c;又要对数…

用C++播放音频

编译环境为codeblocks 20.03&#xff0c;编译器为mingw64非自带的版本&#xff08;版本号多少忘记了&#xff09; 头文件 #include<dsound.h> #include <mmsystem.h> #pragma comment ( lib, "winmm.lib" ) 播放音频代码 int play_sound() {mciSendStr…

linux搭建服务器的准备工作

一&#xff0c;操作环境 创建完虚拟机&#xff0c;安装命令行界面的linux操作系统&#xff08;centos8,rocky8,rhel8) 详细过程请看rhcsa第一天作业 二&#xff0c;为服务器配置白名单和安全组 1&#xff0c; 查看selinux的工作模式 使用命令getenforce查看 工作模式有以下三种…