安装redis

1.获取最新版的 Redis 镜像:

docker pull redis:latest

2.查看本地镜像,使用以下命令来查看是否已安装了 redis:

docker images

在上图中可以看到我们已经安装了最新版本的 redis 镜像。

3.运行容器,安装完成后,我们可以使用以下命令来运行 redis 容器:

docker run -d -p 6379:6379 --name redis -v /usr/local/redis/data:/data redis --appendonly yes 

命令分析

-p 6379:6379 端口映射:前表示主机部分,:后表示容器部分。

–name redis 指定该容器名称。

-v 挂载文件或目录 :前表示主机部分,:后表示容器部分。

-d 表示后台启动redis

redis 镜像名

–appendonly yes 开启redis 持久化

–requirepass 123456789 设置密码为123456789

4.查看运行中的容器

安装mysql

1.拉取MySQL镜像

docker pull mysql:latest

2.拉取完成后可以查看镜像:

docker images

3.运行容器

docker run -p 3306:3306 --name mysql -v /usr/local/mysql/data:/var/lib/mysql/ -v /usr/local/mysql/conf:/etc/mysql/conf.d -v /usr/local/mysql/logs:/var/log/mysql -e MYSQL_ROOT_PASSWORD=root -d mysql --lower-case-table-names=1

参数说明:

  • -d:后台运行容器
  • -p:端口映射,格式为主机端口:容器端口
  • -e:设置环境变量,这里设置的是root密码
  • --name:设置容器别名
  • -v 挂载文件,格式为:宿主机绝对路径目录:容器内目录,比如上面我们使用:-v /usr/local/mysql/logs:/var/log/mysql,来将mysql容器存放日志文件的目录:/var/log/mysql挂载在宿主机的/usr/local/mysql/logs下

运行之后会返回一个容器ID

测试

查看运行中的容器

docker container ls

查看数据卷是否挂载成功

docker inspect 3cda6193a1bd

进入容器

docker exec -it 3cda6193a1bdbash

进入后执行ls,就可以看到,容器内部的目录结构了

使用navicat for mysql连接mysql

密码为root,点击测试连接。

打包项目

前端

  1. 根据后端接口地址修改.env.production 文件的VUE_APP_BASE_API
  2. 运行打包命令:npm run build:prod,生成dist目录

后端

  1. 修改application.yml 文件中:文件上传地址 profile、redis信息
  2. 修改application-druid.yml文件中的 数据库信息
  3. 修改logback.xml文件种的日志存放路径
  4. 打包后在ruoyi-admintarget下生成了一个 jar 包

部署

前端部署

将dockerrfile文件和default.conf,放在服务器上

Dockerfile文件

FROM nginxUSER rootADD default.conf /etc/nginx/conf.dADD dist /usr/share/nginx/html/RUN chmod 775 -R /usr/share/nginx/htmlexpose 80

default.conf

server {listen 80;server_namelocalhost; # 可以用服务器ip代替location / {root /usr/share/nginx/html/;try_files $uri $uri/ /index.html;indexindex.html index.htm;}location /prod-api/ {proxy_passhttp://172.17.0.5:8080/; # 转发规则proxy_set_header Host $proxy_host; # 修改转发请求头,让8080端口的应用可以受到真实的请求proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;} }

构建镜像

docker build -t nginx:v .

构建后,通过docker images,可以查看到构建的镜像

nginx:v(镜像名称:镜像标签)

最后的.代表本次执行的上下文路径

示例:

运行镜像

docker run -p 80:80 --name myNginx -d 4737f6039596

运行后通过通过docker ps查看运行中的容器

示例:

如果运行失败,可以查看日志排查原因

docker logs [ID或者名字] 可以查看容器内部的标准输出。

docker logs -f a3b7568dc10b

注:-f:让docker logs像使用tail -f一样来输出容器内部的标准输出。

示例:

通过浏览器访问

这里后端还没有部署,所以验证码没有出来

后端部署

将dockerrfile文件和ruoyi-admin.jar,放在服务器上

Dockerfile

FROM java:8ADD ruoyi-admin.jar ruoyi-admin.jarEXPOSE 8080ENTRYPOINT ["java","-jar","ruoyi-admin.jar"]

构建镜像

docker build -t ruoyi-admin .

运行镜像

docker run -d -p 8080:8080 --name ruoyi-admin ruoyi-admin

运行成功后,查看运行中的容器

接着我们刷新,就可以看到验证码了。