赞
踩
目录
1.9.拉取镜像mysql:8.0.19、拉取镜像redis:6.0.8 、拉取镜像nginx:1.18.0
1.12.1.将他需要的sql文件复制到/myapp/mysql中
1.2.启动nginx容器,如果这个镜像本机中没有,会自动下载镜,我这下载是的1.18版本
5.将 前端项目 拷贝到Linux服务器中nginx容器对应的html目录下
systemctl disable firewalld
- yum -y install gcc
- yum -y install gcc-c++
yum install -y yum-utils
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum makecache fast
yum install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
systemctl start docker
8.拉取openjdk8
(
docker官网弃用了Java镜像,需要用其他的镜像替代)
docker pull openjdk:8
- docker pull mysql:8.0.19
- docker pull redis:6.0.8
- docker pull nginx:1.18.0
docker images
docker run --name mysql -v /myapp/mysql:/var/lib/mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=password -d mysql:8.0.19
MYSQL_ROOT_PASSWORD:是密码不要设置123456 mysql8.x版本后续会报错设置password就行
docker run -d --name redis -p 6379:6379 redis:6.0.8 --requirepass "123456"
Redis密码:123456
- cd /
- cd myapp/
- cd mysql/
- docker ps #查看mysql容器id
- docker exec -it [容器ID] /bin/bash
mysql -u root -p
接下里输入刚刚run 后的 密码
- create database ry; #创建数据库ry
- show databases; #查看是否存在
- USE ry; #进入ry
- source /var/lib/mysql/xxxx.sql; #执行了ry的sql
对了你很疑惑为什么是var/lib/mysql下的sql对吧,自行百度 后面的xxx就是你刚刚复制到/myapp/mysql下的sql文件名字
- show tables; 查看下表是否存在
- exit; #退出mysql
- exit; #退出mysql容器
将后端项目通过idea打开,Maven不报错的前提下执行以下操作
文件路径改为Linux配置
端口号改为 :port: 8085
redis地址改为ECS主私网IP地址详细见1.2.确认弹性公网ip和主私网ip存在,密码设置为刚刚run后的密码详细见2.11.启动镜像
修改mysql地址为主私网ip 以及名字、密码
预防万一先clean下
package打包
复制发到linux上,放到哪里都行 我放在/usr/loacl目录下
在同级目录下创建Dockerfile文件
- #基础镜像使用openjdk:8
- FROM openjdk:8
-
- #作者
- MAINTAINER zzz
-
- # VOLUME 指定临时文件目录为/tmp,在主机/var/lib/docker目录下创建了一个临时文件并链接到容器的/tmp
- VOLUME /tmp
-
- # 将jar包添加到容器中并更名
- ADD ruoyi-admin.jar app.jar
-
- # 运行jar包
- RUN bash -c 'touch /app.jar'
-
- # 为了缩短 Tomcat 启动时间,添加一个系统属性指向 “/dev/./urandom” 作为 Entropy Source
- ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
-
- #ENTRYPOINT ["nohup","java","-jar","/data/cat/ruoyi-admin.jar","&"]
-
- #暴露8085端口
- EXPOSE 8085
![](https://csdnimg.cn/release/blogv2/dist/pc/img/newCodeMoreWhite.png)
docker build -t ry:1.0 .
docker run -d --name ry -p 8085:8085 ry:1.0
公网Ip访问8085端口
- docker ps -a #查看运行时容器信息
- docker logs -f -t --tail 1000 [容器Id]
因为需要nginx的初始化配置文件保证不出错, 所以我直接启动一个nginx容器,把配置文件拉取下来,然后删除容器
- #需要一个conf文件存放目录,和html文件目录,及日志存放目录
- mkdir -p /data/applications/nginx/conf
- mkdir -p /data/applications/nginx/html
- mkdir -p /data/logs
docker run --name nginx -p 80:80 -d nginx:1.18.0
- # 复制配置
- docker cp nginx:/etc/nginx/nginx.conf /data/applications/nginx/conf/nginx.conf
- docker cp nginx:/etc/nginx/conf.d /data/applications/nginx/conf/conf.d
- docker cp nginx:/usr/share/nginx/html /data/applications/nginx/
-
- #先用 [docker ps – a] 命令 找到对应容器ID
- #才可以删除容器
- docker rm -f [容器ID]
docker run -d -p 80:80 -p 443:443 --name nginx --restart=always --network-alias nginx -e TZ="Asia/Shanghai" -v /data/applications/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /data/applications/nginx/conf/conf.d:/etc/nginx/conf.d -v /data/logs/nginx:/var/log/nginx -v /data/applications/nginx/html:/usr/share/nginx/html -v /data/applications/nginx/cert:/etc/nginx/cert nginx:1.18.0
docker run命令用于运行Nginx容器,并指定了一系列参数来配置容器。
以下是每个参数的解释:
-d: 后台运行容器。
-p 80:80: 将主机的80端口映射到容器的80端口,允许通过主机的80端口访问Nginx服务。
-p 443:443: 将主机的443端口映射到容器的443端口,用于HTTPS访问。
--name nginx: 为容器指定名称为nginx。
--restart=always: 设置容器在退出时总是重新启动。
--network-alias nginx: 在指定的网络中为容器设置别名为nginx。
-e TZ="Asia/Shanghai": 设置容器的时区为亚洲/上海。
-v /data/applications/nginx/conf/nginx.conf:/etc/nginx/nginx.conf: 将主机上的Nginx配置文件挂载到容器内部的相应路径。
-v /data/applications/nginx/conf/conf.d:/etc/nginx/conf.d: 将主机上的Nginx额外配置文件(例如虚拟主机配置)挂载到容器内部的相应路径。
-v /data/logs/nginx:/var/log/nginx: 将主机上的Nginx日志目录挂载到容器内部的相应路径。
-v /data/applications/nginx/html:/usr/share/nginx/html: 将主机上的Nginx网页内容挂载到容器内部的相应路径。
-v /data/applications/nginx/cert:/etc/nginx/cert: 将主机上的SSL证书挂载到容器内部的相应路径。
nginx:1.18.0: 使用Nginx 1.18.0版本的官方镜像作为基础镜像。
这个命令创建了一个Nginx容器,配置了端口映射、文件挂载以及其他相关设置。请确保你的主机上已经创建了相应的目录,并且Nginx配置文件等内容已经准备好。
- # 查看nginx容器是否启动成功
- docker ps -a
之后浏览器访问80端口
设置后端内网ip 、8085端口
npm install --registry=https://registry.npmmirror.com
打包命令根据node版本不同可能会出错,执行前先执行
$env:NODE_OPTIONS="--openssl-legacy-provider"
之后打包
npm run build:prod
打包成功后会在同级别目录下多出个dist目录 将目录下所有文件复制到nginx目录下
目录下原文件都删除
cd /data/applications/nginx/html
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。