docker-compose部署java服务

news/2024/11/27 18:33:38/

文章目录

  • 一、下载安装docker-compose
  • 二、编写Dockerfile文件
  • 三、编写docker-compose.yml文件
    • 配置说明
  • 四、服务启动
  • 五、测试与验证


dockercompose_4">一、下载安装docker-compose

在安装docker时,并不会同时把docker-compose安装好,需要额外安装一下

  1. 下载docker-compose
sudo curl -L "https://github.com/docker/compose/releases/download/v2.28.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
  1. 增加可执行权限
sudo chmod +x /usr/local/bin/docker-compose
  1. 添加软连接
sudo ln -s /usr/local/bin/docker-compose /home/opt/docker-compose

二、编写Dockerfile文件

如何构建Dockerfile文件可以参考以往文章
docker打包部署自己的应用

dockercomposeyml_32">三、编写docker-compose.yml文件

  1. 首先创建一个docker-compose.yml文件
  2. 在该文件中添加服务信息
    在这里插入图片描述

配置说明

services: 定义了应用中每个需要启动的服务。这里定义了两个服务:一个是 Java Spring Boot 应用 my-springboot-app,另一个是 MySQL 数据库服务。
image: 指定要使用的 Docker 镜像,my-springboot-app:latest 表示我们之前构建的 Java 服务镜像。
build: 指定Dockerfile所在路径
container_name: 指定启动容器名称
ports: 将容器端口与宿主机端口进行映射。在本例中,将 Spring Boot 服务的 9999端口映射到宿主机的 9999 端口。
cap_add:- SYS_PTRACE: 让docker容器里支持JDK自带的命令

四、服务启动

docker-componse up -d

命令执行后,Docker Compose 会根据 docker-compose.yml 文件启动所有服务,-d 表示在后台运行容器

五、测试与验证

启动完成后,可以使用以下命令查看容器的状态:

docker-compose ps访问浏览器,访问 http://localhost:9999,检查 Java 服务是否已成功运行。如果一切配置正确,应该可以看到 Spring Boot 应用的首页或相关接口。```---# 总结
使用 Docker Compose 部署 Java 服务有很多优势,特别是在微服务架构中,能够简化多容器应用的配置和管理。通过本文的讲解,你可以了解到:如何为 Java 应用创建 Docker 镜像。
如何通过 Docker Compose 配置文件来编排多个服务。
如何启动和管理 Docker 容器,确保服务在生产环境中顺利运行。
Docker Compose 大大简化了应用的开发、部署和运维过程,尤其适合在多服务的环境中使用。

http://www.ppmy.cn/news/1550412.html

相关文章

C语言超详细教程

系列文章目录 文章目录 系列文章目录1 运算符1.1 算术运算符:2 控制语句2.1 条件语句:2.2 循环语句:3 函数3.1 函数的定义与声明:3.2 递归函数:4 指针4.1 指针的定义与使用函数指针:5. 数组与字符串5.1 数组一维数组:相同类型元素的集合(如:多维数组:数组的数组(如:…

道路机器人识别交通灯,马路,左右转,黄线,人行道,机器人等路面导航标志识别-使用YOLO标记

数据集分割 train组66% 268图片 validation集22% 91图片 test集12% 48图片 预处理 没有采用任何预处理步骤。 增强 未应用任何增强。 数据集图片: 交通灯 马路 右转 向右掉头 机器人识别 人行横道 黄线 直行或右转 数据集下载: 道路…

React第七节 组件三大属性之 refs 的用法注意事项

1、定义 React 中refs 是允许我们操作DOM 访问组件实例的一种方案。开发人员可以直接使用 refs 访问操作DOM,而不用自身的数据状态,这种方案在实际开发过程中是有必要的,但是不建议通篇使用refs操作DOM,如果是这样,那…

webrtc支持h265

Webrtc播放H265的技术探索(datachannelwasm) - 飞翔天空energy - 博客园 https://github.com/ZLMediaKit/ZLMediaKit/issues/3589 [技术咨询]addStreamProxy 添加拉流代理之后,webrtc协议无法播放,其它协议正常 Issue #1808 ZLMediaKit/ZLMediaKit G…

Python学习——猜拳小游戏

import random player int(input(“请输入:剪刀 0,石头 1,布2”)) computer random.randint(0,2)# print(“玩家输入的是%d,电脑输入的是%d” %(player,computer)) 用于测试 if (player 0) and (computer 0) or (player 1) a…

vue3 发送 axios 请求时没有接受到响应数据

<script setup> import Edit from ./components/Edit.vue import axios from axios import { onMounted,ref } from vue// TODO: 列表渲染 //装数据的列表 const list ref([]) const count ref(0) const getList async () > {//通过发送 /list 请求从后端拿到列表数…

C#.Net筑基 - 常见类型

01、结构体类型Struct 结构体 struct 是一种用户自定义的值类型&#xff0c;常用于定义一些简单&#xff08;轻量&#xff09;的数据结构。对于一些局部使用的数据结构&#xff0c;优先使用结构体&#xff0c;效率要高很多。 可以有构造函数&#xff0c;也可以没有。因此初始化…

HCIA笔记3--TCP-UDP-交换机工作原理

1. tcp协议 可靠的连接 1.1 报文格式 1.2 三次握手 1.3 四次挥手 为什么TIME_WAIT需要2MSL的等待时间&#xff1f; &#xff08;a&#xff09; 为了实现可靠的关闭 &#xff08;b&#xff09;为了让过期的报文在网络上消失 对于(a), 假设host发给server的last ack丢了。 ser…