2分钟学会Docker部署SpringBoot项目

文章目录

          • 一、安装docker
            • 1. 在线安装docker
            • 2. 换镜像源
          • 二、安装redis
          • 三、安装mysql
          • 四、安装RabbitMq
          • 五、安装ElasticSearch
            • 5.1. 修改服务器配置
            • 5.2. 创建容器并启动 ES
            • 5.3. 查看启动日志
            • 5.4. 进入镜像
            • 5.5. 修改cluster-name
            • 5.6. 安装中文分词插件
            • 5.7. 退出并重启镜像
            • 5.8. 查看启动日志
          • 六、构建eblog的docker镜像
            • 6.1. 克隆项目到本地
            • 6.2.下载maven依赖
            • 6.3. 修改yml配置和本地运行
            • 6.4. 采用容器别名通信
            • 6.5. 跳过测试打包
            • 6.6. 上传jar包
            • 6.7. 制作Dockerfile
            • 6.8. 制作eblog镜像
            • 6.9. 查看镜像列表
          • 七、启动eblog项目
            • 7.1. 容器运行状态查看
            • 7.2. 修改websoket地址
            • 7.3. 启动eblog
            • 7.4. 查看eblog打印日志
            • 7.5. 浏览器验证

一、安装docker
1. 在线安装docker
#安装
yum install docker#检验安装是否成功
[root@localhost opt]# docker --version
Docker version 1.13.1, build 7f2769b/1.13.1

在这里插入图片描述

2. 换镜像源
sudo vim /etc/docker/daemon.json
内容如下:
{"registry-mirrors": ["https://m9r2r2uj.mirror.aliyuncs.com"]
}
保存退出,重启docker#重启
sudo systemctl daemon-reload
sudo systemctl restart docker

具体地址获取方式:
Centos7 解决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

如果想下载指定版本的mysql镜像请一部官网选择版本
https://hub.docker.com/_/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_ROOT_PASSWORD=admin表示root的初始密码
  • mysql:5.7.27表示操作的是mysql的5.7.27版本,没有后面的版本号的话,默认是拉取最新版本的mysql。

连上mysql,创建数据库eblog,然后把数据库脚本导入进去。 脚本位置:
https://github.com/MarkerHub/eblog/blob/master/eblog.sql
在这里插入图片描述
在这里插入图片描述
如果遇到异常,请移步
1055 - Expression #1 of ORDER BY clause is not in GROUP BY clause and contai

四、安装RabbitMq
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
  • 指定hostname为my-rabbit : --hostname my-rabbit
  • 创建用户 : -e RABBITMQ_DEFAULT_USER
  • 设置密码: -e RABBITMQ_DEFAULT_PASS
  • 可视化窗口版本 : rabbitmq:management
  • 端口映射:-p 5672:5672

一行命令搞定,注意RABBITMQ_DEFAULT_PASS=password是设置密码
在这里插入图片描述
在这里插入图片描述

五、安装ElasticSearch

docker 安装 Elasticsearch6.4.3版本 及中文插件安装。
系统配置
不配置的话,可能会启动失败
具体报错:max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]。
解决:

5.1. 修改服务器配置
sudo sysctl -w vm.max_map_count=262144

在这里插入图片描述

5.2. 创建容器并启动 ES
docker run -p 9200:9200 -p 9300:9300 -d --name es_643 elasticsearch:6.4.3

在这里插入图片描述

5.3. 查看启动日志
docker logs -f es_643 

在这里插入图片描述

5.4. 进入镜像
docker exec -it es_643 /bin/bash
5.5. 修改cluster-name

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

# 修改cluster-name保持和eblog程序yml配置文件一致,如果不需要,可以不改
vi /usr/share/elasticsearch/config/elasticsearch.yml

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

5.6. 安装中文分词插件
./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.4.3/elasticsearch-analysis-ik-6.4.3.zip

在这里插入图片描述

5.7. 退出并重启镜像
# 退出
exit# 重启es_643容器
docker restart es_643

在这里插入图片描述

5.8. 查看启动日志

在这里插入图片描述

六、构建eblog的docker镜像

前提:mysql、redis、RabbitMq、elasticsearch容器都处于启动状态

在这里插入图片描述

6.1. 克隆项目到本地
git clone git@github.com:MarkerHub/eblog.git

或者直接下载zip包
https://github.com/MarkerHub/eblog/archive/refs/heads/master.zip

6.2.下载maven依赖

在这里插入图片描述

6.3. 修改yml配置和本地运行

将mysql、redis、RabbitMq、elasticsearch 地址链接、名称、用户、密码等信息地址修改为容器信息
在这里插入图片描述

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

在这里插入图片描述
看到以上截图,说明服务都部署成功!

6.4. 采用容器别名通信

为了保证容器内部之间可以通信,因此,采用给容器起别名方式±-link参数

调整前调整后说明
192.168.223.128emysqlmysql地址
192.168.223.128eredisredis地址
192.168.223.128eeselasticsearch地址
192.168.223.128erabbitrabbit地址

如下图所示:
在这里插入图片描述

6.5. 跳过测试打包
cd D:\vue\eblog-master
mvn clean package -Dmaven.test.skip=true

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

6.6. 上传jar包

在这里插入图片描述

6.7. 制作Dockerfile
cd /app
vim Dockerfile
# Docker image for springboot file run
# VERSION 1.0.0
# Author: gblfy
FROM java:8
EXPOSE 8080
MAINTAINER gblfy <xxx@qq.com>
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","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

在这里插入图片描述

注:jar包需要和Dockerfile在同一级目录
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
6.8. 制作eblog镜像

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

cd /app# 构建镜像,注意后面有个点哈
docker build -t eblog .

在这里插入图片描述

注:Dockerfile文件内容可以自定义
制作镜像也添加添加版本信息

docker build -t eblog:1.0 .

操作记录:

[root@localhost app]# 
[root@localhost app]# docker build -t eblog:1.0 .
Sending build context to Docker daemon  73.7 MB
Step 1/8 : FROM java:8---> d23bdf5b1b1b
Step 2/8 : EXPOSE 8080---> Using cache---> e91404d45de4
Step 3/8 : MAINTAINER gblfy <xxx@qq.com>---> Running in 5b79b4ead8e2---> 0e711f0534b6
Removing intermediate container 5b79b4ead8e2
Step 4/8 : ENV TZ Asia/Shanghai---> Running in e23d8325cc54---> c9eba2cd377e
Removing intermediate container e23d8325cc54
Step 5/8 : RUN ln -sf /usr/share/zoneinfo/{TZ} /etc/localtime && echo '{TZ}' > /etc/timezone---> Running in 4b82ff8fab7c---> 3ea55048b889
Removing intermediate container 4b82ff8fab7c
Step 6/8 : ADD eblog-0.0.1-SNAPSHOT.jar /app.jar---> d6d02fb42305
Removing intermediate container c95686e0b3dc
Step 7/8 : RUN bash -c 'touch /app.jar'---> Running in ea7e06619867---> 60f8478bc78b
Removing intermediate container ea7e06619867
Step 8/8 : ENTRYPOINT java -Djava.security.egd=file:/dev/./urandom -jar /app.jar---> Running in 0a92b68b6034---> 9394516f581d
Removing intermediate container 0a92b68b6034
Successfully built 9394516f581d
[root@localhost app]# 
6.9. 查看镜像列表
docker images

在这里插入图片描述

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

七、启动eblog项目

前提:mysql、redis、RabbitMq、elasticsearch容器都处于启动状态

7.1. 容器运行状态查看

在这里插入图片描述

7.2. 修改websoket地址

static/res/js/im.js
在这里插入图片描述

7.3. 启动eblog

因为eblog容器需要调用mysql/redis/rabbit/es_643容器服务,相当于跨容器通信,因此,采用–link方式

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:1.0
  • -p 8080:8080 -p 9326:9326 :9326是因为即时聊天需要用到的ws端口
  • –link es:ees 表示关联容器,把容器es起别名为ees,前面是容器,后面是别名(别名在eblog容器中的yml已经配置)
    在这里插入图片描述
7.4. 查看eblog打印日志
docker logs -f eblog

在这里插入图片描述

7.5. 浏览器验证

http://192.168.223.128:8080/
在这里插入图片描述
在这里插入图片描述

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

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

相关文章

linux-ubuntu-16.04 安装 java8、 firewalld、 mysql5.7、Redis 5.0.3、FastDFS、nginx1.18

1、安装java 新建jdk目录 cd /usr/local mkdir java下载JDK8上传到java目录下&#xff0c;解压文件 cd java tar -zxvf jdk-8u201-linux-x64.tar.gz链接&#xff1a;https://pan.baidu.com/s/155P1Y5YetBD0E4PhcPgNfg 提取码&#xff1a;z27j 配置环境变量 vi /etc/profi…

K8s 学习者绝对不能错过的最全知识图谱(内含 56个知识点链接)

导读&#xff1a;Kubernetes 作为云原生时代的“操作系统”&#xff0c;熟悉和使用它是每名用户的必备技能。本篇文章概述了容器服务 Kubernetes 的知识图谱&#xff0c;部分内容参考了网上的知识图谱&#xff0c;旨在帮助用户更好的了解 K8s 的相关知识。 1. 概述 容器服务 …

利用 Docker 在不同宿主机做 CentOS 系统容器 | 原力计划

作者 | 于先森2017责编 | 伍杏玲出品 | CSDN博客最近公司新接到一个项目&#xff0c;惯例是通过技术架构、业务需求、用户量还有以往的经验大概评估出一份资源配置表格提供给客户&#xff0c;让客户参考采购的服务器资源。但这次客户根本没有根据我们提供的参考表格来&#xff…

编程界的“二向箔”——Dart元编程

阅读过《三体》的同学肯定知道“降维打击”&#xff0c;从更高维度看问题&#xff0c;直接将对手KO。今天我们闲聊一下编程界的“二向箔”——元编程。 1. 什么是元编程 我们听过了太多太多的名词&#xff0c;耳朵似乎都有点名词麻痹症了。比如&#xff0c;有些名词为了装x&a…

在线安装docker

文章目录一、安装docker1. 在线安装docker2. 换镜像源一、安装docker 1. 在线安装docker #安装 yum install docker#检验安装是否成功 [rootlocalhost opt]# docker --version Docker version 1.13.1, build 7f2769b/1.13.12. 换镜像源 sudo vim /etc/docker/daemon.json 内…

linux-ubuntu-22.04 安装 java8、 firewalld、 mysql5.7、Redis 6.0、FastDFS、nginx1.18

1、安装java 可参考ubuntu-16.04&#xff0c;没区别 https://blog.csdn.net/qq_38959934/article/details/126101028 2、安装 firewalld 可参考ubuntu-16.04&#xff0c;没区别 https://blog.csdn.net/qq_38959934/article/details/126101028 3、安装 mysql5.7 apt-get in…

车联网服务non-RESTful架构改造实践

导读 在构建面向企业项目、多端的内容聚合类在线服务API设计的过程中&#xff0c;由于其定制特点&#xff0c;采用常规的restful开发模式&#xff0c;通常会导致大量雷同API重复开发的窘境&#xff0c;本文介绍一种GraphQL查询语言网关编排联合的实践&#xff0c;解决大量重复…

为什么铺天盖地都是 Python 的广告?

最近&#xff0c;知乎关于Python有一个热议问题&#xff1a; 甚至在抖音上&#xff0c;笔者有一次还看到Python占领了热搜&#xff01;应该有很多不懂技术的吃瓜群众也被Python的热度炒懵了……但是&#xff0c;Python真的值得学吗&#xff1f;真的值得花这么多钱去学吗&#x…

Spring 社区的唯一一个国产开源项目 - Spring Cloud Alibaba 毕业了

阿里妹导读&#xff1a;一年多前&#xff0c;Java 界最近发生了一件大事&#xff0c;阿里开源 Spring Cloud Alibaba&#xff0c;并推出首个预览版。Spring Cloud 本身是一套微服务规范&#xff0c;并不是一个拿来即可用的框架&#xff0c;而 Spring Cloud Alibaba 的开源为开发…

一个系统,搞定闲鱼服务端复杂问题告警-定位-快速处理

服务端问题排查对开发而言是家常便饭&#xff0c;问题并不可怕但要花大量时间去处理&#xff1b;另一方面故障的快速解决至关重要。 目前问题排查最大的障碍是什么呢&#xff1f;我们认为有以下几个原因&#xff1a; 大量的告警信息。链路的复杂性。排查过程繁复。依赖经验。…

Bespin Global荣膺“Gartner2020全球公有云基础设施管理服务提供商魔力象限领导者”

近日&#xff0c;国际权威调研机构Gartner发布了《2020全球公有云基础设施管理服务提供商魔力象限》报告&#xff0c;Bespin Global&#xff08;贝斯平&#xff09;被评为行业领导者&#xff0c;成为东亚唯一连续四年入选Gartner云MSP魔力象限以及东亚唯一进入领导者象限的科技…

Gartner:2019年公有云服务六大趋势

作系&#xff1a;Gartner杰出研究副总裁Ed Anderson、Gartner研究副总裁David Ackerman、Gartner研究副总裁Sid Nag、Gartner高级研究总监吴涛 在2017年至2018年间&#xff0c;云服务市场发生了巨大的变化。企业机构从低风险地尝试使用云转向全面、大规模地使用云。云项目已进入…

大促背后的流量利器|手淘push升级 比你更懂你

导读&#xff1a;过去的很长一段时间内&#xff0c;由于电商的强运营特性&#xff0c;手淘 App 的 Push 消息大部分时候是作为一个活动通知的通道&#xff0c;对重要活动进行通投引流。然而在竞争环境更加激烈和用户渗透日趋饱和的今天&#xff0c;具备更加精细化的用户运营手段…

京东发布“下一代智能协同开放平台”战略 助力政企数字化转型

5月7日,“下一代智能协同开放平台产业战略发布会”(以下简称“发布会”)在京召开。北京市海淀区委常委、常务副区长李俊杰,京东集团技术委员会主席、京东智联云总裁周伯文博士,以及中关村管委会等政府部门,金山、金蝶、致远互联、今目标、网易有道、稻壳互联等企业代表出席。为…

一行命令导致的数据丢失,阿里工程师是如何恢复的?

阿里妹导读&#xff1a;数据安全性被提到了前所未有的高度&#xff0c;数据保护的话题越来越成为敏感。因为&#xff0c;业务的中断时间对用户造成的影响愈来愈大。阿里技术专家凡钧从数据安全的形势与发展&#xff0c;面临的挑战&#xff0c;问题的定义&#xff0c;传统的解决…

ElasticSearch docker安装

文章目录五、安装ElasticSearch5.1. 修改服务器配置5.2. 创建容器并启动 ES5.3. 查看启动日志5.4. 进入镜像5.5. 修改cluster-name5.6. 安装中文分词插件5.7. 退出并重启镜像5.8. 查看启动日志五、安装ElasticSearch docker 安装 Elasticsearch6.4.3版本 及中文插件安装。 系统…

阿里云物联网平台远程配置功能JAVA 示例参考

概述 很多场景下&#xff0c;开发者需要更新设备的配置信息&#xff0c;包括设备的系统参数、网络参数、本地策略等。通常情况下&#xff0c;是通过固件升级的方式更新设备的配置信息。但是&#xff0c;这将加大固件版本的维护工作&#xff0c;并且需要设备中断运行以完成更新。…

Redis 6.0 新特性:多线程连环 13 问!

来源 | 码大叔责编 | Carol封图 | CSDN付费下载自视觉中国支持多线程的Redis6.0版本于2020-05-02终于发布了&#xff0c;为什么Redis忽然要支持多线程&#xff1f;如何开启多线程&#xff1f;开启后性能提升效果如何&#xff1f;线程数量该如何设置&#xff1f;开启多线程后会不…

支付宝这些程序员要逆天,滑板、画漫画、写科幻小说、航拍,玩得太溜

他一边用代码改变世界&#xff0c;一边用科幻小说去创造未来。 他一边用编程书写传奇&#xff0c;一边用画笔记录生活。 他一边用程序驱动科技&#xff0c;一边用滑板挥洒汗水。 他一边用产品推动技术&#xff0c;一边用航拍记录大地。 他们是四位来自蚂蚁金服的普通程序员&…

技术人最不该忽视可视化数据分析!

阿里妹导读&#xff1a;在这个“人人都是数据分析师”的时代&#xff0c;阿里的同学几乎都在参与数据的采集、加工与消费。数据可视化作为连接“加工——消费”的重要一环&#xff0c;其质量至关重要。优秀的可视化能促成卓越洞见&#xff0c;糟糕的内容则让所有的努力失去意义…