Docker环境部署 若依前后端分离版
f: 让 docker logs 像使用 tail -f 一样来输出容器内部的标准输出。-p 6379:6379 端口映射:前表示主机部分,:后表示容器部分。docker logs [ID或者名字] 可以查看容器内部的标准输出。在上图中可以看到我们已经安装了最新版本的 redis 镜像。构建后,通过docker images,可以查看到构建的镜像。-v 挂载文件或目录 :前表示主机部分,:后表示容
安装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 3cda6193a1bd bash
进入后执行ls,就可以看到,容器内部的目录结构了
使用navicat for mysql连接mysql
密码为root,点击测试连接。
打包项目
前端
- 根据后端接口地址修改 .env.production 文件的VUE_APP_BASE_API
- 运行打包命令:npm run build:prod,生成dist目录
后端
- 修改application.yml 文件中:文件上传地址 profile、redis信息
- 修改application-druid.yml文件中的 数据库信息
- 修改logback.xml文件种的日志存放路径
- 打包后在
ruoyi-admin
的target
下生成了一个 jar 包
部署
前端部署
将dockerrfile文件和default.conf,放在服务器上
Dockerfile文件
FROM nginx
USER root
ADD default.conf /etc/nginx/conf.d
ADD dist /usr/share/nginx/html/
RUN chmod 775 -R /usr/share/nginx/html
expose 80
default.conf
server {
listen 80;
server_name localhost; # 可以用服务器ip代替
location / {
root /usr/share/nginx/html/;
try_files $uri $uri/ /index.html;
index index.html index.htm;
}
location /prod-api/ {
proxy_pass http://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:8
ADD ruoyi-admin.jar ruoyi-admin.jar
EXPOSE 8080
ENTRYPOINT ["java","-jar","ruoyi-admin.jar"]
构建镜像
docker build -t ruoyi-admin .
运行镜像
docker run -d -p 8080:8080 --name ruoyi-admin ruoyi-admin
运行成功后,查看运行中的容器
接着我们刷新,就可以看到验证码了。
更多推荐
所有评论(0)