1、安装docker
1、环境要求
1.Linux要求内核3.0以上
2.CentOS 7
2、环境查看
#系统内核要求3.0以上 [root@localhost ~]# uname -r 3.10.0-1062.el7.x86_64 #系统版本 [root@localhost ~]# cat /etc/os-release NAME="CentOS Linux" VERSION="7 (Core)" ID="centos" ID_LIKE="rhel fedora" VERSION_ID="7" PRETTY_NAME="CentOS Linux 7 (Core)" ANSI_COLOR="0;31" CPE_NAME="cpe:/o:centos:centos:7" HOME_URL="https://www.centos.org/" BUG_REPORT_URL="https://bugs.centos.org/" CENTOS_MANTISBT_PROJECT="CentOS-7" CENTOS_MANTISBT_PROJECT_VERSION="7" REDHAT_SUPPORT_PRODUCT="centos" REDHAT_SUPPORT_PRODUCT_VERSION="7"
3、安装
#1.卸载旧版本 yum remove docker \ > docker-client \ > docker-client-latest \ > docker-common \ > docker-latest \ > docker-latest-logrotate \ > docker-logrotate \ > docker-engine #2.需要的安装包 yum install -y yum-utils #3.设置镜像的仓库 yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo #上述方法默认是从国外的,不推荐 #推荐使用国内的 yum-config-manager \ --add-repo \ https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo #更新软件包索引 yum makecache fast #4.安装docker docker-ce 社区版 而ee是企业版 yum install docker-ce docker-ce-cli containerd.io # 这里我们使用社区版即可 #5.启动docker systemctl start docker #6.使用docker version 查看是否安装成功 docker version
4、阿里云镜像加速
1、登录阿里云找到容器服务——>镜像加速
2、配置使用
sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://cdoid6va.mirror.aliyuncs.com"] } EOF sudo systemctl daemon-reload sudo systemctl restart docker
2、安装docker-compose
从github上下载docker-compose二进制文件安装
下载最新版的docker-compose文件
sudo curl -L https://github.com/docker/compose/releases/download/1.16.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
若是github访问太慢,可以用daocloud下载
sudo curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.1/docker-compose-`uname -s`-`uname -m` -o /usr/
3、配置服务器
1、后台程序配置
1、mysql配置
在root目录下创建docker
mkdir docker
在docker目录下创建mysql
mkdir mysql
创建docker-compose.yml
vim docker-compose.yml
version: '3.1' services: mysql: container_name: "sob-blog-system-mysql" ----容器名 network_mode: "host" environment: MYSQL_ROOT_PASSWORD: "123456" MYSQL_USER: 'root' -----账号名 MYSQL_PASS: '123456' -----账号密码 image: "mysql:5.7.30" -----镜像 restart: always ports: - 3306:3306 -----端口 volumes: -----挂载 - "/home/aosp/docker/mysql/db:/var/lib/mysql" ----换成自己的 - "/home/aosp/docker/mysql/conf:/etc/mysql" ----换成自己的 - "/home/aosp/docker/mysql/log:/var/log/mysql" ----换成自己的 #自己的:/root/docker/mysql
启动docker-compose
docker-compose up -d
构建完以后,用SQLyog连接上数据库
创建数据表
再将idea中将项目的数据库连接
spring.datasource.name=data_collection2 spring.datasource.url=jdbc:mysql://47.96.5.171:3306/data_collection2?serverTimezone=Asia/Shanghai ---换成自己的 spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.username=root ---换成自己 spring.datasource.password= ---换成自己
2、redis配置
在docker目录下创建redis
mkdir redis
创建docker-compose.yml
vim docker-compose.yml
version: '3.1' services: redis: image: redis container_name: sob-blog-system-redis command: redis-server --requirepass 123456 ports: - "6379:6379" ----换成自己的 volumes: - "/home/aosp/docker/redis/data:/data" ----换成自己的
创建容器
docker-compose up -d
构建完以后,用RedisDesktopManager连接上数据库
创建数据表
再将idea中将项目的redis连接
spring.redis.host=47.96.5.171 ----服务器 spring.redis.port=6379 ----redis端口 spring.redis.password=123456 ----redis密码
2、后台管理程序与后台程序打包docker
1、打包jar包
2.编辑后端管理程序
1.下载配置nodejs配置教程
https://blog.csdn.net/alnorthword/article/details/88420874 ----nodejs配置教程
2、Nodejs安装及项目打包部署教程
https://blog.csdn.net/weixin_30488313/article/details/96388954?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522164811315416780357286068%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=164811315416780357286068&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-1-96388954.142^v3^control,143^v4^control&utm_term=nodejs%E9%A1%B9%E7%9B%AE%E6%89%93%E5%8C%85&spm=1018.2226.3001.4187 ------Nodejs安装及项目打包部署教程
打包前先将项目中需要引用后端程序的地方改成服务器名加上准备开的端口 例如:47.96.5.171:8081
3、服务器配置
我们在root/docker目录下新建nginx目录,并进入nginx目录下新建html目录和一个nginx.conf配置文件。
mkdir nginx
mkdir html
vim nginx.conf
#user root; worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; server { listen 80; server_name localhost; location / { root /usr/share/nginx/html; try_files $uri $uri/ /index.html last; # 别忘了这个哈 index index.html index.htm; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } }
[注意] 如果出现有需要代理的则需要修改nginx.conf如下
#user nobody; user root; worker_processes 1; #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #pid logs/nginx.pid; events { worker_connections 1024; } http { include mime.types; #default_type application/octet-stream; upstream myIpAddress{ -----后端访问地址 server 47.96.5.171:8081 weight=1; } #log_format main '$remote_addr - $remote_user [$time_local] "$request" ' # '$status $body_bytes_sent "$http_referer" ' # '"$http_user_agent" "$http_x_forwarded_for"'; #access_log logs/access.log main; sendfile on; #tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 65; #gzip on; server { listen 80; server_name localhost; # 有了域名之后可以写域名 #charset koi8-r; #access_log logs/host.access.log main; # 代理 location /back{ -----根据你的后端管理程序内容进行修改 proxy_pass http://myIpAddress; } location /getCaptcha{ proxy_pass http://myIpAddress; } location /admin{ proxy_pass http://myIpAddress; } location /judgeCaptcha{ proxy_pass http://myIpAddress; } location / { root /usr/share/nginx/html; index index.html index.htm; } #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } }
将打包的dise目录下的复制到服务器上的/root/docker/nginx/html 下
在/root/docker下创建Dockerfile
vim Dockerfile
FROM java:8 EXPOSE 8080 ADD data_collection-0.0.1-SNAPSHOT.jar[----jar包的名字----] app.jar RUN bash -c 'touch /app.jar' ENTRYPOINT ["java", "-jar", "/app.jar", "--spring.profiles.active=pro"----就是你创建的application-pro.properties----]
在/root/docker下创建docker-compose.yml
version: "3" services: nginx: # 服务名称,用户自定义 image: nginx:latest # 镜像版本 ports: - 80:80 # 暴露端口 volumes: # 挂载 - /root/nginx/html:/usr/share/nginx/html - /root/nginx/nginx.conf:/etc/nginx/nginx.conf privileged: true # 这个必须要,解决nginx的文件调用的权限问题 vueblog: image: vueblog:latest build: . # 表示以当前目录下的Dockerfile开始构建镜像 ports: - 8081:8081
[注意] nginx中我们对nginx的放置静态资源的html文件夹和配置文件nginx.conf进行了一个挂载,所以我们打包后的文件放置到宿主机、/root/docker/nginx/html文件目录就行了哈
3、启动docker-compose
在/root/docker目录下启动docker-compose
docker-compose up -d
查看docker容器
docker ps
[注意] 我服务器上mysql并没有用docker容器,所以没有mysql的容器
查看是否成功
在浏览器查看 服务器ip:端口 例如:47.96.5.171:82
[注意] 测试时,如果有些数据无法访问,可能是有些代理未配置,查看错误,在Nginx.conf中编写代理
2、前端服务配置
1、打包前端
1、将前端链接后端的路径换成服务器上的 例如:47.96.5.171:8081
2、域名解析
3、打包
如果出现
就在manifest.json中重新获取
2、在服务器配置nodejs+express
使用 wget 下载 nodejs 包
[root@xxx.xxx.xxx.xx ~]# wget https://nodejs.org/dist/v12.18.1/node-v12.18.1-linux-x64.tar.xz ... [root@xxx.xxx.xxx.xx ~]# tar -xf node-v12.18.1-linux-x64.tar.xz [root@xxx.xxx.xxx.xx ~]# cd node-v12.18.1-linux-x64 [root@xxx.xxx.xxx.xx node-v12.18.1-linux-x64]#
然后备份之前的配置文件,然后更改现在的配置文件
[root@xxx.xxx.xxx.xx node-v12.18.1-linux-x64]# cp /etc/profile /etc/profile.bak [root@xxx.xxx.xxx.xx node-v12.18.1-linux-x64]# vim /etc/profile ... # 在末尾加上这个语句,export PATH=$PATH: 后面跟上 node 下 bin 目录的路径 export PATH=$PATH:/root/node-v12.18.1-linux-x64/bin
然后让这个文件立即生效
[root@xxx.xxx.xxx.xx node-v12.18.1-linux-x64]# source /etc/profile [root@xxx.xxx.xxx.xx ~]# node -v v6.17.1 [root@xxx.xxx.xxx.xx ~]# npm -v 3.10.10
然后初始化 npm, 然后更改初始化文件,保存退出
[root@xxx.xxx.xxx.xx ~]# npm init -y [root@xxx.xxx.xxx.xx ~]# vim package.json
环境就搭建完成了
借助这个环境,我们就可以很好的搭建 express
使用命令,进行全局安装
[root@xxx.xxx.xxx.xx ~]# npm install -g express
注:如果之后出现问题Express Command not found,可能是还需要一个安装另外一个包,没有问题的话就可以跳过这一步
[root@xxx.xxx.xxx.xx ~]# npm install -g express-generator
然后创建一个项目,然后进入这个项目,使用npm初始化
[root@xxx.xxx.xxx.xx ~]# express expressDemo [root@xxx.xxx.xxx.xx ~]# npm install
然后我们把文件放在里面的 public
,并且启动,我们就可以通过这个 ip 加上端口3000进行访问了
[root@xxx.xxx.xxx.xx ~]# npm start
访问地址:xxx.xxx.xxx.xxx:3000
3、启动npm
将h5里面的东西复制到pulic里面
screen -S xxx创建页面
然后启动npm
关闭putty,在网页上查看。