用docker部署后端项目

一、搭建局域网

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

  1. 开启redis验证(可选)

requirepass sasa

  1. 开启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> 
    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

测试

相关推荐
努力进修13 分钟前
跨地域传文件太麻烦?Nginx+cpolar 让本地服务直接公网访问
运维·nginx·cpolar
Qayrup22 分钟前
docker 搭建私有仓库,推送并拉取
运维·docker·容器
闪耀星星27 分钟前
debian elctron-builder
运维·debian
会飞的土拨鼠呀27 分钟前
Debian 12 笔记本合盖不休眠设置指南
运维·debian
郭庆汝39 分钟前
docker拉取英伟达官方cuda11.8镜像
docker·cuda11.8
天下不喵2 小时前
Ubuntu24.04安装Docker过程记录
docker
黑黍2 小时前
如何在k8s中配置并使用nvidia显卡
云原生·容器·kubernetes
梁正雄3 小时前
6、prometheus资源规划
运维·服务器·服务发现·prometheus·监控
晨曦之旅3 小时前
零成本体验云计算!阿贝云免费服务器深度测评
运维·服务器·云计算
工具人55553 小时前
Linux 抓取 RAM Dump 完整指南
linux·运维·安全