**:如果使用阿里云linux服务器

1.设置容器镜像服务

  • 在阿里云平台搜索 “容器镜像服务”

  • 选择“CentOS”

    1. 安装/升级Docker客户端

    2. 配置镜像加速器

      ​ 针对Docker客户端版本大于 1.10.0 的用户

      您可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://03eun7m7.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

OK!

一、安装docker

1. 安装一组工具

sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2

2. 设置 yum 仓库地址

sudo yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

3. 更新 yum 缓存

sudo yum makecache fast

4. 安装新版 docker

sudo yum install -y docker-ce docker-ce-cli containerd.io

##如果你的虚拟机设置有问题的话,执行上边这个命令会有error错误
##请执行下边这行代码
yum install --allowerasing docker-ce

##验证docker是否安装成功
docker -v 查看docker版本

5.启动docker系统服务

sudo systemctl start docker

6. 设置 docker 开机启动

sudo systemctl enable docker

7. 运行 hello-world 镜像,验证 docker

sudo docker run hello-world

8.Docker命令大全:

Docker相关:
启动docker: systemctl start docker
查看docker状态:  systemctl status docker
重启docker:systemctl restart docker
关闭docker:systemctl stop docker
开机自启docker: systemctl enable docker 镜像相关:
查看docker镜像:
docker images
构建镜像:
docker build -t 服务名xxx .
启动镜像:
docker run -d -p 8085:8085 --name 服务名xxx 镜像名xxx
删除指定docker镜像:
docker rmi c20987f18b13(镜像id) 容器相关:
查看docker中的容器:docker ps -a
第一次启动容器:
docker run -d -p 8084:8084 --name 服务名xxx 6b3ceba0a4c9(容器id)/容器名
第一次启动容器(设置自启):
docker run -d -p 8084:8084 --restart=always --name 服务名xxx 6b3ceba0a4c9(容器id)/容器名
启动docker容器:docker start 6b3ceba0a4c9(容器id)/容器名
设置容器自启:docker update --restart=always 容器id
删除容器:docker container rm ck10_mariadb(容器id)

OK!

二、安装 jdk 1.8

1.新建目录

mkdir /usr/local/java
cd /usr/local/java/

2.下载rpm文件

​ 下载jdk1.8版本

wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.rpm

3. 下载完成后添加执行权限

chmod +x jdk-8u131-linux-x64.rpm

4. rpm执行安装

rpm -ivh jdk-8u131-linux-x64.rpm

如下图则安装成功,还需要配置环境变量

5.编辑环境变量

vim /etc/profile

在最下方新增java环境变量,如下代码:

export JAVA_HOME=/usr/java/jdk1.8.0_131
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH
export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
export PATH=$PATH:${JAVA_PATH}

Ctrl+c后执行命令 :wq 保存

6.执行立即刷新命令

source /etc/profile

执行java、javac、java -version等命令进行验证

OK!

三、使用docker安装mysql5.7

1.获取mysql-5.7镜像

sudo docker pull mysql:5.7

2.查看镜像

sudo docker images

3.启动mysql

docker run --name mysql -v /usr/local/mysql/data:/var/lib/mysql -v /usr/local/mysql:/etc/mysql/conf.d -v /usr/local/mysql/log:/var/log/mysql  -e MYSQL_ROOT_PASSWORD=123456  -p 3306:3306 -d mysql:5.7

启动成功如图:

命令解析:

-d 后台运行
-p 端口映射 。-p 3306:3306 :映射容器服务的 3306 端口到宿主机的 3306 端口,外部主机可以直接通过 宿主机ip:3306 访问到 MySQL 的服务
-v 卷挂载 。 /usr/local/mysql/conf:/etc/mysql/conf.d :将到本地 /usr/local/mysql/conf挂载到容器的 /etc/mysql/my.cnf。后面修改配置文件,只需要再本地 /usr/local/mysql/conf修改即可,不需要进入容器里面进行修改
-e 环境配置。 -e MYSQL_ROOT_PASSWORD=123456 配置数据库连接密码为123456
–name 容器名字

4.查看容器命令

正在运行的容器
docker ps
所有的容器
docker ps -a

如下图:容器列表中存在刚刚启动的mysql容器。状态为Up 20 minutes代表正在运行中,并且已经运行了20分钟

5.开启防火墙端口

防火墙命令:

查看防火墙状态:firewall-cmd --state
开启防火墙:systemctl start firewalld.service
关闭防火墙:systemctl stop firewalld.service
重启防火墙:systemctl restart firewalld.service
加载防火墙开放端口:firewall-cmd --reload
查看防火墙开放端口列表:firewall-cmd --list-port
开放端口:firewall-cmd --permanent --zone=public --add-port=5672/tcp
关闭端口:firewall-cmd --permanent --zone=public --remove-port=5672/tcp  

先查看3306端口有没有开启

firewall-cmd --list-port

如果没有开启执行以下命令:

#永久开放3306端口号:
firewall-cmd --permanent --zone=public --add-port=3306/tcp
#加载防火墙开放端口
firewall-cmd --reload
#重新启动 防火墙
systemctl restart firewalld.service

6. 进入mysql容器,并登陆mysql

docker exec -it mysqlserver bash
mysql -uroot -p

7. 开启远程访问权限

use mysql;
select host,user from user;
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
flush privileges;

8.使用本地/其他电脑的Navicat Premium 进行远程连接测试

9. 测试卷挂载

查看数据挂载:

进入该目录:cd /usr/local/mysql/data
查看列表:ll

新建一个数据库:

刷新数据挂载(/usr/local/mysql/data)下数据列表

进入该目录:cd /usr/local/mysql/data
查看列表:ll

如下图,多了一个testdb。说明挂载成功

10. 设置mysql默认编码格式为utf8(可选)

# cd到本地挂载配置文件目录下
cd /usr/local/mysql/conf
# 新建配置文件
vim my.conf

输入一下配置信息

[client]
default-character-set=utf8 [mysql]
default-character-set=utf8 [mysqld]
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve

OK!

四、Docker安装RabbitMQ

1.使用docker查询rabbitmq的镜像

docker search rabbitmq

2. 安装指定版本的rabbitmq镜像

docker pull rabbitmq:3.9-management

management:代表该rabbitmq包含web管理页面

3. 运行+挂载rabbitmq:

docker run -d \
-v /usr/local/rabbitmq/data:/var/lib/rabbitmq \
-p 5672:5672 -p 15672:15672 --name rabbitmq --restart=always \
--hostname rabbitmq rabbitmq:3.9

4.开启防火墙端口 5672、15672

查看端口是否启动:

firewall-cmd --list-port

如果没有则运行以下命令:

#永久开放5672、15672端口号:
firewall-cmd --permanent --zone=public --add-port=5672/tcp
firewall-cmd --permanent --zone=public --add-port=15672/tcp
#加载防火墙开放端口
firewall-cmd --reload
#重新启动 防火墙
systemctl restart firewalld.service

5.在阿里云linux服务器安全组中添加端口 5672、15672

6.如果安装的是(没有web页面)的rabbitmq,需要如下操作:

1.查看部署的mq容器id: docker ps -a
2.进入容器内部:docker exec -it 容器id /bin/bssh
3.安装web插件:rabbitmq-plugins enable rabbitmq_management

7. 访问http://xxxxxx:15672,访问web界面

8.创建root用户(超级管理员)

  • 进入rabbitmq客户端,在admin添加新用户root,tag选择administrator

  • 点进root,设置root用户可以管理虚拟主机/,这里点击默认的set permission即可

  • 确认springboot中application.properties配置正确
 rabbitmq:
host: 8.130.17.94
port: 5672
username: root
password: root
virtual-host: /

OK!

五、使用docker安装nacos

1. 搜索nacos镜像(对版本没有要求的话)

docker search nacos

2. 安装nacos(指定版本1.4.0)

docker pull nacos:1.4.0

3. 安装数据库,版本要求:5.6.5+ (一般用mysql5.7)

  • 在阿里云服务器数据库中创建nacos数据库:
  • 初始化数据库,导入初始化文件nacos-db.sql

4. 运行nacos镜像(单机模式-standalone)

docker run -d -e MODE=standalone -e PREFER_HOST_MODE=hostname -e SPRING_DATASOURCE_PLATFORM=mysql -e MYSQL_SERVICE_HOST=服务器ip -e MYSQL_SERVICE_PORT=3306 -e MYSQL_SERVICE_USER=root -e MYSQL_SERVICE_PASSWORD=123456 -e MYSQL_SERVICE_DB_NAME=nacos -p 8848:8848 --name nacos --restart=always nacos/nacos-server:1.4.0

5.开启8848端口

  • 开启linux防火墙8848端口
  • 在阿里云服务器安全组中添加8848端口

6. 访问Nacos

默认用户名密码都为nacos

http://服务器ip:8848/nacos/index.html

OK!

六、spring cloud项目打包

1.配置application.yml

server:
port: 8084
spring:
datasource:
url: jdbc:mysql://服务器ip:3306/jjb?useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8&useSSL=false
username: root
password: 123456
driver-class-name: com.mysql.jdbc.Driver
application:
name: orderService
cloud:
nacos:
discovery:
server-addr: 服务器ip:8848
mybatis:
mapper-locations: classpath:mapper/*.xml
type-aliases-package: cn.itcast.order.modules.*.entity
configuration:
map-underscore-to-camel-case: true
logging:
level:
cn.itcast: debug
pattern:
dateformat: MM-dd HH:mm:ss:SSS
userservice: # 给某个微服务配置负载均衡规则,这里是userservice服务
ribbon:
NFLoadBalancerRuleClassName: com.alibaba.cloud.nacos.ribbon.NacosRule # 负载均衡规则
feign:
httpclient:
enabled: true # 开启feign对HttpClient的支持
max-connections: 200 # 最大的连接数
max-connections-per-route: 50 # 每个路径的最大连接数
#mybatis
mybatis-plus:
mapper-locations: classpath*:/mapper/**/*.xml
#实体扫描,多个package用逗号或者分号分隔
typeAliasesPackage: cn.itcast.order.modules.*.entity
global-config:
#数据库相关配置
db-config:
#主键类型 AUTO:"数据库ID自增", INPUT:"用户输入ID", ID_WORKER:"全局唯一ID (数字类型唯一ID)", UUID:"全局唯一ID UUID";
id-type: ID_WORKER
banner: false

2.配置bootstrap.yml

spring:
cloud:
nacos:
config:
server-addr: 服务器ip:8848
application:
name: orderService

3. 配置pom.xml文件(打jar包相关配置)

在pom.xml最下面配置以下代码:

 <build>
<finalName>app</finalName>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.yml</include>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.yml</include>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
</resources> <plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>

4. 打jar包

  • 通过idea中的maven进行打包(jar包)
  • 具体打包方式:百度以下(很简单)

5. 创建Dockerfile文件(一会儿构建微服务镜像时使用)

给每一个微服务分别创建一个该文件,在idea里面创建即可。里面的端口号和微服务端口号必须一致

FROM java:8

COPY *.jar /app.jar

CMD ["--server.port=8084"]

EXPOSE 8084

ENTRYPOINT ["java","-jar","/app.jar"]

OK!

七、项目部署

1.创建jar包部署位置

在linux系统上,

cd /home
ll
mkdir xiaoguo(自定义)
ll
cd xiaoguo
mkdir hjzProject(自定义)
ll
cd hjzProject
创建各个微服务的jar包目录
比如:
mkdir all-order-service-8084
mkdir gateway-10010
mkdir login-service-8082
mkdir master-worker-service-8085
mkdir picture-service-8086
mkdir rabbitMQ-service-8087

2. 把打好的微服务jar包+Dockerfile文件放在对应的目录中(使用Xshell连接linux,然后使用xftp将文件上传)

3.给每一个微服务构建一个镜像

举例:
1.进入某个jar包的存放目录:cd all-order-service-8084
2.构建镜像: docker build -t orderservice .
3.运行该镜像:docker run -d -p 8084:8084 --name orderservice orderservice
4.运行成功后,查看对应的容器:docker ps

OK!

八、配置nacos配置中心(最后~~~)

1.构建springboot项目

2.打包应用

3.编写dockerfile

4.构建镜像

5.发布运行

linux系统部署微服务项目的更多相关文章

  1. Docker实战 | 第二篇:IDEA集成Docker插件实现一键自动打包部署微服务项目,一劳永逸的技术手段值得一试

    一. 前言 大家在自己玩微服务项目的时候,动辄十几个服务,每次修改逐一部署繁琐不说也会浪费越来越多时间,所以本篇整理通过一次性配置实现一键部署微服务,实现真正所谓的一劳永逸. 二. 配置服务器 1. ...

  2. Docker部署微服务项目

    测试包准备工作 1.spring.io或者ide创建demo工程 spring官网 2.本地demo代码,打包成jar包 使用Dockerfile构建微服务镜像 3.将jar包上传到你的vps lin ...

  3. Linux系统部署samba服务记录

    Samba(Server Messages Block)是一种linux系统和windws系统之间依靠网络协议共享文件的服务程序,(Samba has provided secure, stable ...

  4. 毕业设计代做,各种系统微服务项目ssm项目,员工管理系统,微信小程序,购物商城,二手商城系统,销售系统,等等

    毕业设计代做,各种系统,微服务项目,ssm项目 小程序,商城等,期末作业等都可以,价格好说,长期接单, 有项目说明书,软件介绍相关文档,答辩的时候包过,知识点对接好,给你讲解等, 毕业设计代做,各种系 ...

  5. Docker 搭建 ELK 读取微服务项目的日志文件

    思路: 在docker搭建elasticsearch与kibana来展示日志,在微服务部署的机子上部署logstash来收集日志传到elasticsearch中,通过kibana来展示,logstas ...

  6. Linux系统部署JavaWeb项目(超详细tomcat,nginx,mysql)

    转载自:Linux系统部署JavaWeb项目(超详细tomcat,nginx,mysql) 我的系统是阿里云的,香港的系统,本人选择的是系统镜像:CentOS 7.3 64位. 具体步骤: 配置Jav ...

  7. Docker部署golang微服务项目

    这篇博客是为了记录一下部署步骤. 因为实训需要,我要在服务器上用docker部署我们小组的微服务项目.我们的微服务有Gateway,User,Scene,Device四个部分,分别占用不同的端口,其中 ...

  8. docker微服务部署之:三,搭建Zuul微服务项目

    docker微服务部署之:二.搭建文章微服务项目 一.新增demo_eureka模块,并编写代码 右键demo_parent->new->Module->Maven,选择Module ...

  9. docker微服务部署之:二、搭建文章微服务项目

    docker微服务部署之:一,搭建Eureka微服务项目 一.新增demo_article模块,并编写代码 右键demo_parent->new->Module->Maven,选择M ...

  10. docker微服务部署之:一,搭建Eureka微服务项目

    先说明一下docker需要搭建的微服务的基本情况: 项目情况:一个demo_parent项目,下面三个子模块:demo_eureka(eureka服务).demo_article(文章服务).demo ...

随机推荐

  1. service的dns记录

    当您创建一个 Service 时,Kubernetes 为其创建一个对应的 DNS 条目.该 DNS 记录的格式为 ..svc.cluster.local,也就是说,如果在容器中只使用 ,其DNS将解 ...

  2. vue禁用浏览器返回键

    mounted () { // 禁用浏览器返回键 history.pushState(null, null, document.URL); window.addEventListener('popst ...

  3. POJ3417 Network暗的连锁 (树上差分)

    树上的边差分,x++,y++,lca(x,y)-=2. m条边可以看做将树上的一部分边覆盖,就用差分,x=1,表示x与fa(x)之间的边被覆盖一次,m次处理后跑一遍dfs统计子树和,每个节点子树和va ...

  4. 利用POI遍历出层级结构的excel表格

    import java.util.ArrayList; import java.util.List; import org.apache.poi.ss.util.CellRangeAddress; p ...

  5. 记一次 .NET 某电子病历 CPU 爆高分析

    一:背景 1.讲故事 前段时间有位朋友微信找到我,说他的程序出现了 CPU 爆高,帮忙看下程序到底出了什么情况?图就不上了,我们直接进入主题. 二:WinDbg 分析 1. CPU 真的爆高吗? 要确 ...

  6. How to get the return value of the setTimeout inner function in js All In One

    How to get the return value of the setTimeout inner function in js All In One 在 js 中如何获取 setTimeout ...

  7. 关于TP5模板输出时间戳问题--A non well formed numeric value encountered

    某日.因为一个项目.控制器我是这么写的 1 /** 2 * get admin/Picture/index 3 * 显示所有图册信息 4 * @return view 5 */ 6 public fu ...

  8. Redis 常见问题-缓存穿透

    问题描述: * 针对 DB 中不存在的数据源,每次请求缓存和数据库都不存在 造成后果: * 应用服务器压力变大 * Redis 命中率大幅度降低 * `数据库压力巨增甚至 down 掉`* 该现象对于 ...

  9. python批量依赖包操作

      1.导出所有的python依赖 pip freeze > requirements.txt #requirements.txt 为自定名称,可以指定路径 2.自动安装所有依赖包 pip in ...

  10. windows和虚拟机上的Ubuntu互传文件

    1.简介 本文讲述的是通过ssh登录虚拟机上的Ubuntu系统,实现互传文件 2.Ubuntu端 2.1.安装ssh sudo apt-get update sudo apt-get install ...