SpringBoot快速部署(1)—docker不使用nginx

方法一:使用 link

docker run -d --restart=always -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=123456 -e MYSQL_DATABASE=qr_code_test -v /mnt/docker/files/qr_board_system/qr_code_test.sql:/docker-entrypoint-initdb.d/database.sql mysql:5.6

docker run -dit --restart=always -p 20242:20242 -v /mnt/docker/qr_board_system:/app --name qr_board --link mysql-test:mysql classmethod/openjdk-alpine-git java -Duser.timezone=GMT+08 -Dfile.encoding=utf-8 -Dspring.config.location=/app/application.yml -jar /app/ss-board-system-0.0.1-SNAPSHOT.jar

方法二:使用 network

要使用Docker网络连接容器,你需要执行以下步骤:

  1. 创建一个自定义的Docker网络。
  2. 将MySQL容器连接到这个网络。
  3. 将qr_board容器连接到这个网络。

首先,创建一个自定义的Docker网络:

docker network create qr_network

然后,启动MySQL容器并将其连接到这个网络:

docker run -d --restart=always -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=123456 -e MYSQL_DATABASE=qr_code_test -v /mnt/docker/qr_board_system/qr_code_test.sql:/docker-entrypoint-initdb.d/database.sql --network qr_network mysql

最后,启动qr_board容器并将其连接到同一个网络:

docker run -dit --restart=always -p 20242:20242 -v /mnt/docker/qr_board_system:/app --name qr_board --network qr_network classmethod/openjdk-alpine-git java -Duser.timezone=GMT+08 -Dfile.encoding=utf-8 -Dspring.config.location=/app/application.yml -jar /app/ss-board-system-0.0.1-SNAPSHOT.jar

通过这种方式,你就可以确保两个容器能够通过网络相互通信了。

同时,确保MySQL容器已成功启动并且MySQL服务正在运行。你可以使用以下命令检查MySQL容器的运行状态:

docker ps -a | grep mysql

如果MySQL容器处于运行状态,那么MySQL服务应该也在正常运行。

网络连接是否正确:确保两个容器都连接到了同一个Docker网络。你可以使用以下命令检查容器连接到的网络:

docker inspect mysql | grep NetworkMode

docker inspect qr_board | grep NetworkMode

如果两个容器的NetworkMode字段显示的是同一个网络,那么它们应该可以相互通信。

端口映射是否正确:确认MySQL容器的端口是否正确映射到主机的端口。你可以使用以下命令检查端口映射:

docker port mysql

docker run -d --restart=always -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=123456 -e MYSQL_DATABASE=qr_code_test -v /mnt/docker/qr_board_system/qr_code_test.sql:/docker-entrypoint-initdb.d/database.sql --network qr_network mysql

  • -d: 表示容器在后台运行(detached mode)。
  • --restart=always: 表示容器将始终自动重启,即使 Docker 守护进程被重启也是如此。
  • -p 3306:3306: 将 MySQL 容器的3306端口映射到主机的3306端口上,允许通过主机的3306端口访问 MySQL 服务。
  • --name mysql: 为容器指定一个名称,即"mysql"。
  • -e MYSQL_ROOT_PASSWORD=123456: 设置 MySQL root 用户的密码为"123456"。
  • -e MYSQL_DATABASE=qr_code_test: 创建一个名为"qr_code_test"的数据库。
  • -v /mnt/docker/qr_board_system/qr_code_test.sql:/docker-entrypoint-initdb.d/database.sql: 将宿主机上的/mnt/docker/qr_board_system/qr_code_test.sql文件挂载到容器内的/docker-entrypoint-initdb.d/database.sql路径,这样 MySQL 服务启动时会自动执行该 SQL 文件来初始化数据库。
  • --network qr_network: 将容器连接到名为"qr_network"的 Docker 网络,这样容器内的服务可以通过该网络进行通信。
  • mysql: 指定要使用的 Docker 镜像,这里使用官方提供的 MySQL 镜像。

docker run -dit --restart=always -p 20242:20242 -v /mnt/docker/qr_board_system:/app --name qr_board --network qr_network classmethod/openjdk-alpine-git java -Duser.timezone=GMT+08 -Dfile.encoding=utf-8 -Dspring.config.location=/app/application.yml -jar /app/ss-board-system-0.0.1-SNAPSHOT.jar

  • -dit: 表示容器在后台运行,并且使用交互式终端(保持 STDIN 打开),这样你可以随时通过 docker exec 进入容器内部进行交互操作。
  • --restart=always: 表示容器将始终自动重启。
  • -p 20242:20242: 将容器的20242端口映射到主机的20242端口上,允许通过主机的20242端口访问容器内的服务。
  • -v /mnt/docker/qr_board_system:/app: 将宿主机上的/mnt/docker/qr_board_system目录挂载到容器内的/app路径,这样应用程序可以读取宿主机上的文件。
  • --name qr_board: 为容器指定一个名称,即"qr_board"。
  • --network qr_network: 将容器连接到名为"qr_network"的 Docker 网络。
  • classmethod/openjdk-alpine-git: 指定要使用的 Docker 镜像,这里使用了一个基于 Alpine Linux 的 OpenJDK 镜像。
  • java -Duser.timezone=GMT+08 -Dfile.encoding=utf-8 -Dspring.config.location=/app/application.yml -jar /app/ss-board-system-0.0.1-SNAPSHOT.jar: 在容器内运行的命令,启动了一个 Java 应用程序,指定了一些 JVM 参数和应用程序的配置文件位置,并执行了一个 JAR 包文件。

docker exec -it mysql service mysql status

docker exec -it mysql mysqladmin -uroot -p123456 ping

如果端口映射正确,你应该能够看到MySQL容器的3306端口被正确映射到主机的某个端口上。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Docker 图形化界面管理工具 Portainer | 让你更轻松的管理 Docker

本文首发于只抄博客,欢迎点击原文链接了解更多内容。 前言 Portainer 是一个 Docker 图形化管理工具,可以通过 Web UI 轻松的管理容器、镜像、网络、卷。与 Dockge 相比功能更加的完善,同时上手难度也更大一些 Portainer 分为社区版和商业版…

摸鱼大数据——Hive函数14

14、开窗(开列)函数 官网链接:Window Functions - Apache AsterixDB - Apache Software Foundation 14.1 基础使用 开窗函数格式: 开窗函数 over(partition by 分组字段名 [order by 排序字段名 asc|desc] [rows between 开窗开始 and 开窗结束]) ​ partition b…

动画技术在AI绘画中的革新作用

引言: 随着人工智能技术的飞速发展,AI绘画作为其应用领域之一,已经引起了艺术和技术界的广泛关注。动画技术,作为视觉艺术的重要组成部分,与AI绘画的结合不仅为传统绘画带来了新的活力,也推动了创意表达和艺…

第24讲:Ceph集群RGW对象存储高可用集群部署与测试

文章目录 1.RGW对象存储高可用集群架构1.1.环境规划1.2.高可用集群架构图 2.部署RGW对象存储高可用集群2.1.在所有的Ceph节点中部署RGW2.2.部署Haproxy负载均衡服务2.3.配置Haproxy负载均衡三个节点中的RGW2.4.配置Keepalived实现RGW高可用集群2.5.启动Keepalived并观察VIP地址…

关于域环境

一.什么是域 Windows域是计算机网络的一种形式,其中所有用户帐户,计算机,打印机和其他安全主体都向位于一个或多个中央计算机群集(域控制器)上的中央数据库注册。通过域用户登录域内主机,需要通过域控制器…

升级你的工作流:集成钉钉企微的可道云teamOS网盘体验全攻略,办公体验瞬间升级

我们知道,企业微信、钉钉扫码登录已经成为现代企业高效办公的标配。 然而,市面上绝大多数企业网盘产品,都无法对接企业微信和钉钉,这无疑给企业的工作流程带来一定困扰。 今天给大家介绍一下,集成了钉钉和企微的企业…

动态规划1:1137. 第 N 个泰波那契数

动态规划解题步骤: 1.确定状态表示:dp[i]是什么 2.确定状态转移方程:dp[i]等于什么 3.初始化:确保状态转移方程不越界 4.确定填表顺序:根据状态转移方程即可确定填表顺序 5.确定返回值 题目链接:1137…

格式化数据恢复指南:从备份到实战,3个技巧一网打尽

朋友们!你们有没有遇到过那种“啊,我的文件呢?”的尴尬时刻?无论是因为手滑、电脑抽风还是其他原因,数据丢失都可能会让我们抓狂,甚至有时候,我们可能一不小心就把存储设备格式化了,…

第二证券:A股年内首家非ST股面值退市!这类ST股数量逐年增加

A股出清残次上市公司的速度正在加速。 年内首家非ST退市股“诞生” 5月30日晚间,正源股份公告称已收到买卖所下发的《关于拟停止正源控股股份有限公司股票上市的事前奉告书》,2024年4月30日至2024年5月30日,公司股票接连20个买卖日的每日股…

强达电路营收下滑净利润急剧放缓:周转率骤降,2次因环保被罚

《港湾商业观察》施子夫 自2022年6月向深交所创业板递交招股书起,深圳市强达电路股份有限公司(以下简称,强达电路)已收到深交所下发的两轮审核问询函,并且公司已于2023年3月31日顺利过会。但由于迟迟未提交注册申请&a…

用SNMP模仿Zabbix读取设备接口流量

正文共:666 字 11 图,预估阅读时间:1 分钟 前文(通过SNMP统计网络资产)介绍了SNMPWALK的安装及简单使用。SNMP的功能还是十分强大的,几乎所有设备上支持查看的信息通过SNMP协议都能读取到,甚至有…

API开放平台项目细节

1.前端如何区分用户权限的,是管理员还是普通用户? Ant Design Pro内置了一套权限管理机制,通过access.ts页面实现。它会去取到全局初始化状态(InitialState)的loginUser,根据当前登录用户判断是否有管理员…

建设智慧校园,需要哪些步骤?

智慧校园作为校园信息化的载体,涵盖了校园事务的各个方面。由于涉及系统过多,构建一个数字化校园是一个复杂的过程,因为智慧校园不是单独存在的,而是需要作为数据中心与业务枢纽连接学校的各个业务系统。 因此,有步骤&…

C# MQTTNET 服务端+客户端 实现 源码示例

目录 1.演示效果 2.源码下载 3.服务端介绍 4.客户端介绍 1.演示效果 2.源码下载 下载地址:https://download.csdn.net/download/rotion135/89385802 3.服务端介绍 服务端用的控制台程序进行设计,实际使用可以套一层Windows服务的皮,进…

015、列表_应用场景

1.消息队列 如图所示,Redis的lpush+brpop命令组合即可实现阻塞队列,生产者客户端使用lrpush从列表左侧插入元素,多个消费者客户端使用brpop命令阻塞式的“抢”列表尾部的元素,多个客户端保证了消费的负载均衡和高可用性。 2.文章列表 每个用户有属于自己的文章列表,现…

CSAPP Lab07——Malloc Lab完成思路

等不到天黑 烟火不会太完美 回忆烧成灰 还是等不到结尾 ——她说 完整代码见:CSAPP/malloclab-handout at main SnowLegend-star/CSAPP (github.com) Malloc Lab 按照惯例,我先是上来就把mm.c编译了一番,结果产生如下报错。搜索过后看样子应…

Matlab进阶绘图第58期—带填充纹理的横向堆叠图

带填充纹理的横向堆叠图是通过在原始横向堆叠图的基础上添加不同的纹理得到的,可以很好地解决由于颜色区分不够而导致的对象识别困难问题。 由于Matlab中未收录提供填充纹理选项,因此需要大家自行设法解决。 本文使用hatchfill2工具(Kesh I…

一些智能音箱类的软硬件方案

主要参考资料 Rabbit R1: https://www.rabbit.tech/rabbit-r1 mediatek-helio-p35: https://www.mediatek.com/products/smartphones-2/mediatek-helio-p35 NSdisplay: https://www.nsdisplay.com/ai-holobox-mini/ai-holobox-mini.html RK3566: https://www.rock-chips.com/a/…

I2C总线上拉电阻计算

I2C 总线上拉电阻计算 I2C接口的上拉电阻计算是一个常见问题。本文介绍如何使用简单的方程式进行计算。 1 介绍 I2C通信标准是当今电子系统中应用最广泛的芯片间通信标准。它是一种漏极开路/集电极开路通信标准,这意味着可以连接具有不同电源轨的集成电路 &#…

java jar包后台运行方式

在实际工作中,java开发的spring boot等通过jar包部署需要一直运行的程序部署到服务器上时,都希望后台运行,方便管理程序服务、防止被误操作关闭,本文结合自己工作经验讲解jar包后台运行的两种方式,分别是按操作系统支持…