用docker部署后端项目

news2024/9/23 17:16:48

一、搭建局域网

1.1、介绍前后端项目搭建

需要4台服务器,在同一个局域网中

1.2、操作

# 搭建net-ry局域网,用于部署若依项目  net-ry:名字
docker network create net-ry --subnet=172.68.0.0/16 --gateway=172.68.0.1


#查看
docker network ls

 

能不能访问分为2种情况:

 一、如果项目部署完上线了,外部不能访问内部

二、部署的时候是应该能访问的,需要看Mysql等是否安装好,防火墙应该关闭,来调试问题

#查看防火墙状态
systemctl status firewalld

#关闭防火墙
systemctl stop firewalld


#启动docker
systemctl restart docker

 

# 注意1:关闭宿主机的防火墙,否者容器内部的MySQL、redis等服务,外部访问不了;开放端口3306、6379端口也没用。

# 注意2:关闭防火墙后必须重启docker,否者出现如下错误
docker: Error response from daemon: driver failed programming external connectivity on endpoint ruoyi-admin (399a34630e6ef8e4ed7cf20d46b9654c8d535d0fe44ceadebf8bd605d3da35b8):  (iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 8080 -j DNAT --to-destination 172.68.0.4:8080 ! -i br-c34635070c6f: iptables: No chain/target/match by that name.

参考链接:https://blog.csdn.net/xiegongmiao/article/details/128409967

二、安装redis

#创建两个目录
mkdir -p /data/redis/{conf,data}

#
cd /data/redis/

ll

cd  conf

进入刚刚创建的conf目录,上传文件

 #上传redis.conf文件到/data/redis/conf文件夹中
# bind 0.0.0.0 充许任何主机访问
# daemonize no  因为用的是容器,Redis装在容器里面,不影响输入命令
# requirepass sasa   用户密码sasa

 redis.conf修改

1. 允许redis外地连接 


#bind 127.0.0.1改成为
bind 0.0.0.0
 

2. 开启redis验证(可选)
requirepass sasa
 

3. 开启redis数据持久化(可选)
appendonly yes

docker run -itd --name zking-redis -p 6379:6379 \
-v /data/redis/conf/redis.conf:/etc/redis/redis.conf \
-v /data/redis/data:/data \
--privileged=true --restart=always \
--network net-ry redis \
redis-server /etc/redis/redis.conf 

id启动       容器不进入

zking-redis     名字

-p 6379:6379 \    映射端口
-v    挂载
-v /data/redis/data:/data \      缓存数据
--privileged=true --restart=always \   给最高权限

1. --privileged=true :让容器root用户拥有最高权限,否则可能会出现权限不够错误

2. redis-server /etc/redis/redis.conf:容器启动时执行的命令及读取的配置

3. redis-6.2.6.tar.gz压缩包中找到redis.conf官方配置文件

4. 在hub.docker.com中找到启动redis方式

测试

#进入容器
docker exec -it zking-redis /bin/bash


root@ec98cd3af83e:/data#  whereis redis-cli
redis-cli: /usr/local/bin/redis-cli
root@ec98cd3af83e:/data# cd /usr/local/bin
root@ec98cd3af83e:/usr/local/bin# ls
docker-entrypoint.sh  redis-benchmark  redis-check-rdb  redis-sentinel
gosu                  redis-check-aof  redis-cli        redis-server
root@ec98cd3af83e:/usr/local/bin# redis-cli
127.0.0.1:6379> ping
PONG
127.0.0.1:6379>

三、安装Mysql

#退出程序
exit

#退出容器
Ctrl+P+Q

# 1.创建文件夹
mkdir -p /data/mysql/{conf,data}


#进入conf
cd  /data/mysql/conf/



# 2.上传my.cnf文件到/data/mysql/conf文件夹中 (可以将my2.cnf修改好在Linux中重命名为my.cnf)
mv my2.cnf my.cnf

  1. 修改官方my.cnf

     #运行mysql5.7,注意有单独的mysql镜像
     docker run --name=mysql1 -d mysql/mysql-server:5.7
     #进入容器查看/etc/my.cnf文件,修改my.cnf文件,让其支持中文
  2. 查看mysql数据保存位置

    cd /var/lib/mysql> 
    
  3. 1. 设置密码

     -e MYSQL_ROOT_PASSWORD=sasa:设置root的密码
     

3.启动MySQL容器服务 


docker run -d --name zking-mysql --network net-ry  \
-v /data/mysql/conf/my.cnf:/etc/my.cnf \
-v /data/mysql/data:/var/lib/mysql \
--privileged=true --restart=always \
-e MYSQL_ROOT_PASSWORD=sasa -p 3306:3306 \
mysql/mysql-server:5.7

等待时间有点久

检查

docker ps

远程连接


# 进入容器
docker exec -it zking-mysql /bin/bash

# 登录
mysql -u root -p;

# 创建用户及授权
grant all privileges on *.* to root@'%' identified by 'sasa' with grant option;

# 刷新权限
flush privileges; 



 注意:0- 1-工具原因,复制进去记得删除

工具测试

四、部署后端服务

4.1、创建数据库

运行sql文件 

4.2、使用Dockerfile自定义镜像

# 1.构建Dockerfile镜像
1)切换到家目录
cd ~

#新建文件夹
mkdir ruoyi-admin

#切进去
cd ruoyi-admin



2)上传ruoyi-admin.jar到Dockerfile_ruoyi-admin文件所在目录

 

#重命名
mv Dockerfile_ruoyi-admin Dockerfile

4)ruoyi-admin为镜像名称,开始制作镜像
docker build -t ruoyi-admin .

测试

docker images

#运行容器
docker run -itd --name ruoyi-admin --network net-ry -p 80                                                                              80:8080  ruoyi-admin

docker ps

#进入容器
docker exec -it ruoyi-admin /bin/bash

#查看日志
cd /home/ruoyi/logs/

ls -l

测试

 

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

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

相关文章

【力扣精选算法100道】——存在重复元素 1 or 2 (哈希)

目录 🚩存在重复元素1 🎈了解题意 🎈算法原理 🎈实现代码 🚩存在重复元素2 🎈了解题意 🎈算法原理 🎈代码实现 217. 存在重复元素 - 力扣(LeetCode) …

Zynq—AD9238数据采集DDR3缓存千兆以太网发送实验(二)

Zynq—AD9238数据采集DDR3缓存千兆以太网发送实验(前导) Zynq—AD9238数据采集DDR3缓存千兆以太网发送实验(一) 五、实验目的 本次实验使用电脑上的网络调试助手,将命令帧通过以太网芯片RTL8211(RGMII接口…

C#,最小代价多边形三角剖分MCPT(Minimum Cost Polygon Triangulation)算法与源代码

1 最小代价多边形三角剖分算法 凸多边形的三角剖分是通过在非相邻顶点(角点)之间绘制对角线来形成的,这样对角线就不会相交。问题是如何以最小的代价找到三角剖分的代价。三角剖分的代价是其组成三角形的权重之和。每个三角形的重量是其周长…

FPFH特征提取以及匹配(matlab代码免费)

FPFH特征提取时谁提出的,尊重一下原创: [1] Rusu, Radu Bogdan, Nico Blodow, and Michael Beetz. “Fast point feature histograms (FPFH) for 3D registration.” In 2009 IEEE International Conference on Robotics and Automation, pp. 3212-3217…

websocket在java中的使用教程

本文从websocket服务端和客户端两个方面简单介绍下websocket在java中的使用。 一、websocket服务端(WebSocketServer) websocket服务端是以本机作为消息的接受端,用于接受客户端websocket发送过来的消息,并可以通过客户端的webs…

06_netdev网卡设备内核模块

01_basicLinux内核模块-CSDN博客文章浏览阅读315次&#xff0c;点赞3次&#xff0c;收藏3次。环境IDubuntuMakefilemodules:clean:basic.creturn 0;运行效果。https://blog.csdn.net/m0_37132481/article/details/136157384my_netdev.c #include <linux/kernel.h> #incl…

Unity 使用AddListener监听事件与取消监听

在Unity中&#xff0c;有时候我们会动态监听组件中的某个事件。当我们使用代码动态加载多次&#xff0c;每次动态加载后我们会发现原来的和新的事件都会监听&#xff0c;如若我们只想取代原来的监听事件&#xff0c;那么就需要取消监听再添加监听了。 如实现如下需求&#xff…

yml代替properties文件进行springboot项目配置

任务&#xff1a;使用yml格式文件代替properties格式文件进行便捷有效的springboot项目配置。 原先&#xff1a; 在与application.properties文件同级目录下新建application.yml文件&#xff0c;以上配置内容修改为&#xff1a; 注&#xff1a;yml文件的一些编写规范

前端爬虫+可视化Demo

爬虫简介 可以把互联网比做成一张 “大网”&#xff0c;爬虫就是在这张大网上不断爬取信息的程序。 爬虫是请求网站并提取数据的自动化程序。 省流&#xff1a;Demo实现前置知识&#xff1a; JS 基础Node 基础 &#xff08;1&#xff09;爬虫基本工作流程&#xff1a; 向…

跨境电商必看:跨境出海实用工具!

对于想要出海扩展业务的电商从业者来说&#xff0c;用好工具和资源至关重要。本文将分享一些跨境出海的使用工具&#xff0c;助力跨境业务。 关键词工具 Google Trends&#xff08;谷歌趋势&#xff09;&#xff1a; 它的数据来源于谷歌搜索&#xff0c;依靠Google全世界数十…

R语言简介、环境与基础语法及注释

R语言简介、环境与基础语法及注释 一、R语言1.R语言简介2.R语言官网3.R语言中国的镜像网站4.R语言下载5.R语言的历史 二、R语言环境1.Windows安装1.1 去 R 语言下载的镜像站点的列表下载1.2 选择版本进行下载1.3 点击运行1.4 一路默认&#xff0c;安装完毕&#xff01; 2.Linux…

maven配置文件(一)Settings配置

一、仓库 1、关系 我们依赖的外部服务是需要有地方进行存储的&#xff0c;而存储的地方就称之为仓库。其中仓库又分为本地仓库、中央仓库、镜像仓库、私服。 &#xff08;1&#xff09;本地仓库 当项目在本地编译或运行时&#xff0c;直接加载本地的依赖服务无疑是最快的。默…

[计算机网络]:流量控制

一、流量控制简介 一条TCP连接的每一侧主机都为其设置了接收缓存&#xff0c;当TCP成功连接后&#xff0c;它发送的数据会放入接受缓存中。相关联的进程会从缓存中读取数据。但是存在一个问题&#xff0c;当某应用程序读取数据速率太慢&#xff0c;而发送数据一方不停的发送数…

Flutter学习8 - 网络编程 Http

1、配置 Http 依赖 Flutter 工具库搜索地址&#xff1a;https://pub.dev/ http最新版本查看网址&#xff1a; https://pub.dev/packages/http 在 pubspec.yaml 中引入 http 插件 dependencies:flutter:sdk: flutterhttp: ^0.13.4 # 请检查并使用最新版本命令行中输入 “ flut…

【C语言基础】:深入理解指针(二)

文章目录 深入理解指针一、指针运算1. 指针 - 整数2. 指针 - 指针3. 指针的关系运算 二、野指针1. 野指针成因2. 如何避免野指针 三、assert断言四、指针的使用和传址调用4.1 strlen的模拟实现4.2 传值调用和传址调用 五、指针与数组5.1 数组名的理解5.2 指针访问数组5.3 一维数…

蓝桥杯-单片机组基础7-存储器映射扩展与PWM脉冲调制(附小蜜蜂课程代码)

蓝桥杯单片机组备赛指南请查看这篇文章&#xff1a;戳此跳转蓝桥杯备赛指南文章 本文章针对蓝桥杯-单片机组比赛开发板所写&#xff0c;代码可直接在比赛开发板上使用。 型号&#xff1a;国信天长4T开发板&#xff08;绿板&#xff09;&#xff0c;芯片&#xff1a;IAP15F2K6…

HCIA-HarmonyOS设备开发认证V2.0-习题

目录 习题一习题二习题三&#xff08;待续...&#xff09;坚持就有收获 习题一 # HarmonyOS简介 1. 以下哪几项属于OpenHarmony的技术特性&#xff1f;&#xff08;&#xff09;A. 统一OS&#xff0c;弹性部署B. 一次开发&#xff0c;多端部署C. 硬件互助&#xff0c;资源共享…

基于数字孪生的机场人群智慧管控技术

源自&#xff1a;系统仿真学报 作者&#xff1a;钟竞辉,林育钿,李稳强&#xff0c;蔡文桐 “人工智能技术与咨询” 发布 摘 要 针对机场人群应急管控和管理智能化的需求&#xff0c;提出基于数字孪生的机场人群智慧管控方案。构建了包含数据层、建模层、功能层和应用层四维…

【JavaEE进阶】 Linux搭建Java部署环境

文章目录 &#x1f343;前言&#x1f334;Linux权限&#x1f6a9;用户操作&#x1f6a9;三种角色&#x1f6a9;文件类型和访问权限&#x1f388;文件类型&#x1f388;基本权限 &#x1f6a9;修改文件权限 &#x1f38d;搭建Java部署环境&#x1f6a9;apt&#x1f388;apt常用命…

【c++】STL--List的实现

目录 一. List的数据结构 二. List实现的基本框架 1. list的结点结构类 2. List的迭代器类 正向迭代器 反向迭代器 3. List操作接口的实现 1. 默认成员函数 构造函数 和 析构函数 拷贝构造函数 和 赋值运算符重载 2. 修改相关函数接口 insert 和 erase …