前言:我通过第一轮的苍穹外卖写完了,现在新的知识增加了一点,现在想用新知识来写一下,也可以巩固旧知识。
我先想到的是用docker部署在我的虚拟机,虚拟机部署mysql,nginx,redis使用本机连接用idea写代码对他增删改查。
环境:VMware,centos7,MobaXterm(用来连接虚拟机),idea2023,Navicat Premium 16,Another Redis Desktop Manager
一、docker compose部署
1、centos7能上网
主要是为了固定ip地址,后面好连接nginx,redis,mysql服务,具体可以看文章【centos7快速连接上网】
可以ping通外网说明成功,并且要牢记自己设置的ip地址,试试本机能不能ping的通虚拟机。
2、安装docker
具体看文章【docker安装配置镜像源】,直接拉到后面看,国内镜像源经常会失效,可以直接百度主要是修改地址。
发现自己的镜像源没加速了以后需要自己去百度更换,主要是更换下面红色框住的代码。并且检查自己的docker是否安装好。
3、镜像安装mysql,,redis,nginx
docker pull mysql
docker pull redis
docker pull nginx
jdk的话最好自己去用自己的版本,去官网下载合适自己jdk版本
4、docker compose部署
在root路径下创建一个data文件夹
mkdir data
文件路径
4.1 nginx
把苍穹外卖的前端项目拉进来。下面是我自己的路径
注意conf文件夹只需要nginx.conf文件就好了
因为需要网络互通所以要查询自己本机的虚拟机网络是什么 打开cmd用 ipconfig /all 来查询Vmnet8的地址,主要是用来修改nginx.conf文件
修改刚刚自己复制进去虚拟机的nginx.conf文件
#修改成你自己的地址
upstream webservers{
server 192.168.111.101 weight=90 ;
#server 127.0.0.1:8088 weight=10 ;
}
#路径和我一样的话可以照抄
location / {
# root html/sky;
# index index.html index.htm;
root /usr/share/nginx/html/sky;
index index.html index.htm;
try_files $uri $uri/ /index.html;
}
#修改成你自己的地址
location /api/ {
proxy_pass http://192.168.111.101:8080/admin/;
#proxy_pass http://webservers/admin/;
}
4.2 mysql
在mysql文件夹分别创建conf,data,init 只需要在init里面放苍穹外卖给我们提供的sql文件,也是就是在苍穹外卖day01中的数据文件sky_take_out.sql
4.3 redis
在redis文件夹中创建data和redis.conf,打开redis.conf,生成文件redis.conf,redis有密码设置,没密码就不用设置密码
#持久化存储
appendonly yes
#设置redis密码
requirepass 123456
4.4 最后使用docker compose来部署
docker-compose.xml文件内容
version: '3.8'
networks:
sky:
name: sky
services:
nginx:
image: nginx:latest
container_name: nginx
ports:
# 设置宿主机的映射端口
- "8080:80"
volumes:
- /root/data/html:/usr/share/nginx/html
- /root/data/conf/nginx.conf:/etc/nginx/nginx.conf
networks:
- sky
depends_on:
- redis
redis:
image: redis:latest
container_name: redis
ports:
# 设置redis宿主机的映射端口
- "6380:6379"
volumes:
- /root/data/redis/redis.conf:/etc/redis/redis.conf
- /root/data/redis/data:/data
command: redis-server /etc/redis/redis.conf
environment:
- TZ=Asia/Shanghai
networks:
- sky
restart: unless-stopped
mysql:
image: mysql:latest
container_name: mysql
ports:
# 设置mysql宿主机的映射端口
- "3306:3306"
environment:
- TZ=Asia/Shanghai
# 设置mysql的密码
- MYSQL_ROOT_PASSWORD=root
volumes:
- /root/data/mysql/data:/var/lib/mysql
- /root/data/mysql/conf:/etc/mysql/conf.d
- /root/data/mysql/init:/docker-entrypoint-initdb.d
networks:
- sky
restart: unless-stopped
cd ./data
docker compose up -d
查看自己部署的容器 docker ps -a
验证是否成功:
redis :host填写自己的虚拟机ip地址 我刚刚设置的是6380端口,待会要指定
mysql :host填写自己的虚拟机ip地址
nginx:打开本机浏览器输入 IP地址+端口号
我的是 192.168.111.100:8080 成功看见 完成,接下来就可以redis数据和mysql数据就可以写在虚拟机了