就几条命令,一键学会Docker部署SpringBoot项目

IDEA+Docker一键部署项目SpringBoot项目 接着需要编写一个用于定义和构建 Docker 镜像的文本文件,文件名为 Dockerfile,Dockerfile 中的配置可根据自身项目情况进行调整。在设置中找到 Docker,点击 +,选择以 SSH 方法连接到 Docker 守护进程,接着点击下拉列表,选择刚才创建的 SSH 配置。如果你点击小三角后部署失败,并且 IDEA 给出了以下提示,可能是因为 SSH 配置中的用户并没有连接 Docker 的权限。点击 +,创建一个新的 SSH 连接,填入主机、用户名和密码后点击测试连接。 阅读详情

我们的开源博客项目eblog已经更新完毕了。今天,我们使用docker的安装方式,来安装一下我们的项目,实验环境是centos 7系统上,本实验适用部署大部分Springboot项目。文末有40分钟的视频教学哈!

eblog项目地址:

https://github.com/MarkerHub/eblog

安装docker

#安装
yum install docker
#检验安装是否成功
[root@localhost opt]# docker --version
Docker version 1.13.1, build 7f2769b/1.13.1
#启动
systemctl start docker
#换镜像源
sudo vim /etc/docker/daemon.json
内容如下:
{
 "registry-mirrors": ["https://m9r2r2uj.mirror.aliyuncs.com"]
}
保存退出,重启docker
#重启
systemctl restart docker

安装redis

首先上dockerHub搜索redis,点击进入详情页之后,拉到下面就可以看到how to use,如果需要选择特定的版本,有Supported tags给我们选择,然后如果拉取最新的版本的话,拉倒下面就教程。

  • https://hub.docker.com/_/redis

#拉取redis的镜像
docker pull redis
#查看本地redis镜像
docker images
#运行redis
docker run --name myredis -p 6379:6379 -d redis redis-server --appendonly yes
  • docker run表示运行的意思

  • --name myredis 表示起个名字叫myredis

  • -p 6379:6379表示把服务器的6379映射到docker的6379端口,这样就可以通过服务器的端口访问docker的端口

  • -d 表示以后台服务形式运行redis

  • redis redis-server --appendonly yes表示开启持久化缓存模式,可以存到硬盘

安装mysql

  • https://hub.docker.com/_/mysql

MYSQLROOTPASSWORD=admin表示root的初始密码

mysql:5.7.27表示操作的是mysql的5.7.27版本,没有后面的版本号的话,默认是拉取最新版本的mysql。

docker pull mysql:5.7.27
docker run --name mymysql -e MYSQL_ROOT_PASSWORD=admin -d -p 3306:3306  mysql:5.7.27 

连上mysql,创建数据库eblog,然后把数据库脚本导入进去。脚本位置:https://github.com/MarkerHub/eblog/blob/master/eblog.sql

安装RabbitMq

一行命令搞定,注意RABBITMQDEFAULTPASS=password是设置密码的意思哈。

docker run -d --hostname my-rabbit --name myrabbit -e RABBITMQ_DEFAULT_USER=root -e RABBITMQ_DEFAULT_PASS=admin -p 15672:15672 -p 5672:5672 rabbitmq:management

安装ElasticSearch

docker 安装 Elasticsearch6.4.3版本 及中文插件安装。

系统配置

不配置的话,可能会启动失败

具体报错:max virtual memory areas vm.maxmapcount [65530] is too low, increase to at least [262144]。

解决:

  • sudo sysctl -w vm.maxmapcount=262144

启动 ES

  • docker run -p 9200:9200 -p 9300:9300 -d --name es_643 elasticsearch:6.4.3

进入镜像

  • docker exec -it es_643 /bin/bash

es配置文件位置:/usr/share/elasticsearch/config/elasticsearch.yml

安装中文分词插件

./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.4.3/elasticsearch-analysis-ik-6.4.3.zip

退出并重启镜像

  • exit

  • docker restart es_643

构建eblog的docker镜像

接下来,我们需要先去clone eblog博客项目,对项目进行打包成jar包。

clone https://github.com/MarkerHub/eblog.git
cd eblog
# 打包
mvn clean package -Dmaven.test.skip=true

然后把项目 eblog-0.0.1-SNAPSHOT.jar 包上传到服务器中 同eblog-0.0.1-SNAPSHOT.jar的目录,创建一个名称为Dockerfile文件。

内容如下:

  • Dockerfile

FROM java:8
EXPOSE 8080
VOLUME /tmp
ENV TZ=Asia/Shanghai
RUN ln -sf /usr/share/zoneinfo/{TZ} /etc/localtime && echo "{TZ}" > /etc/timezone
ADD eblog-0.0.1-SNAPSHOT.jar  /app.jar
RUN bash -c 'touch /app.jar'
ENTRYPOINT ["java","-jar","/app.jar"]
  • FROM java:8 表示基于jdk8环境

  • EXPOSE 8080 表示对外暴露的端口是8080

    • VOLUME /tmp 表示挂载到/tmp目录

  • ADD eblog-0.0.1-SNAPSHOT.jar /app.jar 表示把jar包复制到镜像服务里面的根目录,并改名称app.jar

  • RUN bash -c 'touch /app.jar' 表示执行创建app.jar

  • ENTRYPOINT ["java","-jar","/app.jar"] 表示执行启动命令java -jar

接下来,我们安装Dockrfile的命令,把eblog-0.0.1-SNAPSHOT.jar构建成docker的镜像。

#构建镜像,注意后面有个点哈。
docker build -t eblog .
#查看镜像
docker images

这步骤完成之后,我们就可以在准备工作就已经完成啦,接下来,我们就直接启动我们的项目哈。

启动eblog项目

启动命令如下:

docker run -p 8080:8080 -p 9326:9326 --name eblog --link es_643:ees --link myrabbit:erabbit --link mymysql:emysql --link myredis:eredis -d eblog

-p 8080:8080 -p 9326:9326 :9326是因为即时聊天需要用到的ws端口 --link es:ees 表示关联容器,把容器es起别名为ees

查看eblog打印日志

docker logs -f eblog

这时候我们查看就可以通过8080端口访问我们的项目了!!!

到此项目运行成功!!

总结

使用docker compose编排形式会更简单!

视频演示

链接:https://www.bilibili.com/video/BV1dk4y1r7pi

来个素质三连哈,求关注!!

Springboot系列-部署Springboot项目到Docker容器 Springboot系列-部署Springboot项目到Docker容器 前言:在平时的项目开发中,我们部署项目的方式可能是打成Jar包直接运行,或者将项目打成war包然后部署到tomcat容器中运行等;不过微服务和单体应用不一样,由于微服务数量众多,所以在部署的时候很容易出现问题,而Docker恰巧解决了这个难题 将springboot项目打包部署到Docker容器中有多种办法,那么如何将s... 阅读详情

相关推荐

eblog:eblog是一个基于Springboot2.1.2开发的博客学习项目,为了让项目融合更多的知识点,达到学习目的,编写了详细的从0到1开发文档。主要学习包括:自定义Freemarker标签,redis的zset结构完成本周热议排行榜,t-io + websocket完成即时消息通知和群聊,rabbitmq + elasticsearch完成博客内容搜索引擎等。值得学习的地方很多!

项目说明: 本博客是学习过程中建造的项目,为了融合更多知识点,让博客看起来更加高大上,使用了多个框架组合,有些也是企业级项目中常用的解决方式。多内容内容的,通常是xss攻击预防等安全方面的。 项目结构: eblog │ ├─src │ ├─main │ │ ├─java │ │ │ └─com │ │ │ └─markerhub │ │ │ │ CodeGenerator.java #代码生成 │ │ │ │ │ │ │ ├─common │ │ │ │ ├─exception #全局异常处理 │ │ │ │ ├─lang │ │ │ │ └─templates #自定义Freemarker标签封装 │ │ │

开源项目 eblog 安装与使用指南

eblog 是一个基于特定技术栈构建的开源博客系统。以下是其主要的目录结构及其简要说明: ```plaintext eblog/ ├── backend # 后端服务代码,通常包括API处理和业务逻辑 │ ├── controllers # 控制器层,负责具体业务逻辑的实现 │ ├── models # 数据模型,...

gitblog_00147的博客 455

eblog主题hemingway,wordpress主题

简洁版汉化hemingwa主题,适用于eblog系统

探索未来写作的新方式:EbLog - 一个智能化的博客构建平台

是一个基于 Vue.js 和 Flask 的现代化博客系统,致力于为用户提供快速、易用且功能丰富的个人或团队博客搭建体验。它集成了Markdown语法支持,让你的写作更加流畅,并且提供了强大的自定义能力,满足不同用户的个性化需求。 ## 技术分析 ### 前端架构 - **Vue.js**:作为前端框架,Vue.js 提供了组件化开发模式,使得代码结构清晰,易于维护。 EbLog 利用 Vu...

gitblog_00034的博客 377

音乐频谱灯的硬件艺术:从STM32到SK9822LED的工程美学

本文探讨了基于STM32微控制器和SK9822 LED的音乐频谱灯硬件设计与实现。通过ADC采集音频信号,利用FFT算法进行频谱分析,并驱动LED阵列呈现动态视觉效果,展现了硬件工程与艺术美学的完美融合。

Pepper的专栏 218

STM32-DAC定时器触发三角波生成【频率与幅度精准控制】

本文详细介绍了STM32 DAC定时器触发三角波生成的原理与实现方法,涵盖硬件配置、频率与幅度精准控制技巧及代码实现。通过定时器触发DAC模块,可灵活调节三角波的频率和幅度,适用于信号发生器等高精度应用场景。

weixin_29161785的博客 454

docker php 一键部署_就几条命令,一键学会Docker部署SpringBoot项目

我们的开源博客项目eblog已经更新完毕了。今天,我们使用docker的安装方式,来安装一下我们的项目,实验环境是centos 7系统上,本实验适用部署大部分Springboot项目。文末有40分钟的视频教学哈!eblog项目地址:https://github.com/MarkerHub/eblog安装docker#安装yum install docker#检验安装是否成功[root@l...

weixin_39731107的博客 158

QT+SOEM主站协议库实战指南—从编译到嵌入式应用

本文提供了一份QT与SOEM开源EtherCAT主站协议库的集成实战指南。详细介绍了在Windows和Linux平台下编译SOEM库的步骤,并讲解了如何将其无缝集成到QT项目中,构建具备实时监控与控制功能的工业上位机应用。内容涵盖从环境搭建、核心协议开发到嵌入式部署与优化的全流程,为开发高性价比、自主可控的工业控制解决方案提供完整路径。

u6v7w8x的博客 442

docker 定时重启脚本_就几条命令,一键学会Docker部署SpringBoot项目

我们的开源博客项目eblog已经更新完毕了。今天,我们使用docker的安装方式,来安装一下我们的项目,实验环境是centos 7系统上,本实验适用部署大部分Springboot项目。文末有40分钟的视频教学哈!eblog项目地址:https://github.com/MarkerHub/eblog安装docker#安装yum install docker#检验安装是否成功[root@l...

weixin_42407741的博客 439

SAP 凭证分割功能 - 概述&系统配置 - Chapter01/02

为何要进行凭证拆分(分割)?在启用凭证分割之前, 在财务凭证在过账时会自动带出默认的利润中心,这利 润中心一般是从其他对象派生出来的(比如从成本中心、WBS 或资产负债表科 目定义默认的利润中心等),但是某些情况下的财务过账是不会派生出利润中 心的,比如说应收或者应付。如果一笔销售凭证上有两个行项目,10 行对应的成品物料 A 的利润中心为 TPCA-100;公司项目Dr/Cr科目金额利润中心10001Dr应收账款20002Cr库存商品A1500TPCA-1003Cr。

weixin_46525734的博客 3973

块存储:AIO的直接写流程注释

提交io流程中aio_write之前函数的注释,可参考“块存储:AIO的直接读流程注释”。

yiyeguzhou100的专栏 1335

docker部署springboot项目

每个容器之间相互隔离 可以让我们方便的创建和使用容器,docker将程序以及程序所有的依赖都打包到docker container,这样你的程序可以在任何环境都会有一致的表现.此外docker的另一个好处就是。,镜像就是一种轻量级、可执行的独立软件包,用来打包软件运行环境和基于运行环境开发的软件,它包含运行某个软件所需的所有内容,包括代码、运行时、库、环境变量和配置文件。dockerFile:dockerfile是用来构建docker镜像的文件,命令参数脚本。使用docker命令查询正在运行的容器。

wangwangwang223的博客 2674

掌握 Unity 中的状态机:综合指南

最后,将拥有一个由状态机驱动的功能齐全的播放器控制器,可以集成到自己的项目中。此外,状态机有助于实现复杂的人工智能、玩家控制、动画系统等,从而形成更强大、更灵活的游戏架构。状态机是计算机科学和游戏开发中的一个基本概念,它通过定义一组有限的状态及其之间的转换来模拟实体的行为。你可以定义常见的状态行为,例如 Enter、Update 和 Exit 方法,确保整个状态机架构的一致性和连贯性。由于前面提到的状态类扩展了 BaseState 类,因此我们可以为具有不同状态的不同对象创建单独的类。

yolo模型训练找我,AI游戏合作找我 1453

IntelliJ IDEA + Docker一键部署SpringBoot项目

IntelliJ IDEA + Docker一键部署SpringBoot项目

聂可以的博客 6211

在大模型压测中是测试单卡还是压测单个机器上所有卡?

本文详细分析了大模型服务压测中的两种关键方式:单卡压测和单机多卡压测。单卡压测主要用于评估特定GPU卡的理论性能上限,为调度策略提供基准数据;单机多卡压测则评估整机性能,验证多卡并行推理效果和卡间协同效率。文章还阐述了二者的递进关系,建议压测流程应从单卡到单机再到集群分阶段进行,并提供了具体方法和注意事项。最后强调两者缺一不可,前者提供调度依据,后者验证实际部署效果,共同为生产环境容量规划提供数据支撑。(148字)

weixin_42738495的博客 274

ATECC508A芯片开发笔记(三):获取508A串号、随机数源码及I2C抓包分析

ATECC508A芯片开发笔记(三):读取508A串号、获取随机数源码及I2C抓包分析 APP层函数编写及源码分析 At508_GetSernum() GetSernum抓包记录 At508_GetRandom( ) GetRandom抓包记录 经过前两章节,CryptoAuthlib库已经成功适配在代码中了,下面简单测试一下API函数,并分析下I2C通讯流程: APP层函数编写及源码分析利用li

HowieXue 薛永浩的博客 2万+

IDEA+Docker远程一键部署SpringBoot项目

本文将学习使用IDEA+Docker远程一键部署SpringBoot项目,对比上传jar包到服务器,再通过java指令运行项目,极大程度的提高了项目部署效率。可谓不用不知道,一用再也停不下来~

观止study 2776

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

【Docker】Docker部署SpringBoot项目

使用Docker、DockerCompose部署SpringBoot、nginx、静态资源的代码示例。

qq_38924779的博客 9637

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

docker一键部署springBoot项目

今天给大家分享一下用idea自动部署docker之springboot项目。 前期准备: 1、springboot的项目(就拿上一篇文章的自动生成海报为例) 2、一台装有docker的服务器 3、一个优秀的idea开发工具 第一步: maven clean and install项目 第二步:创建DockerFile文件 # springBoot和Docker整合 # VERSION 0.0.1 # Author: KingYiFan # 安装jdk8 FROM java:8 .

猿码优创 1966

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

【docker系列】docker实战之部署SpringBoot项目

Docker 是一种开源的容器化平台,可以将应用程序及其依赖项打包到一个可移植的容器中,然后发布到任何支持 Docker 的服务器上。Docker 的架构由三个主要组件组成:Docker 客户端、Docker 守护进程和 Docker 镜像。Docker 客户端用于与 Docker 交互,Docker 守护进程负责管理和监控 Docker 的运行,Docker 镜像是一个只读的模板,包含了运行容器所需的文件系统和依赖项。自从 Docker 发布以来,它迅速获得了广泛的认可和采用。

优快云站内信: https://i.youkuaiyun.com/#/msg/chat/qyj19920704 1万+

Springboot项目快速部署(二):Idea插件docker工具,结合Docker-Compose一键部署Springboot项目到远程Docker容器

Docker Compose 是一个强大的工具,能够帮助开发者和系统管理员更高效地管理和部署容器化应用。它简化了容器管理过程,使得部署复杂应用变得可预测和自动化。

qq_37941840的博客 2043
上一篇: 阿里Java面试答案【283页PDF文档免费领】
下一篇: Java 面试 1 小时,我看出了和月薪 3w 的差距
Java思维导图
博客等级 码龄10年 306粉丝 71原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值