登录  /  注册
博主信息
博文 98
粉丝 1
评论 0
访问量 77918
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
Cool Admin 框架之docker部署项目
阿杰
原创
318人浏览过

docker部署前后端

Ubuntu系统

准备工作,先安装docker

  • 更新您的包管理工具。
  1. sudo apt-get update
  • 添加阿里云源到您的实例中
  1. sudo curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | apt-key add -
  • 安装Docker社区版本,容器运行时containerd.io,以及Docker构建和Compose插件。
  1. sudo apt-get -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
  • 启动Docker并设置Docker守护进程在系统启动时自动启动,这样可以确保每次系统启动时,Docker服务也会自动启动。
  1. sudo systemctl start docker
  2. sudo systemctl enable docker
  • 通过查看Docker版本命令,验证Docker是否安装成功。
  1. sudo docker -v

1.安装ngnix

(1)拉取官方Nginx镜像

  1. ubuntu@VM-8-5-ubuntu:~$ sudo docker pull nginx:latest

(2)运行Nginx容器:

  1. ubuntu@VM-8-5-ubuntu:~$ sudo docker run --name nginx-test -p 8080:80 -d nginx

2.安装Mysql

(1)拉取MySQL官方镜像:

  1. ubuntu@VM-8-5-ubuntu:~$ sudo docker pull mysql:8.0

(2)运行MySQL容器:

  1. ubuntu@VM-8-5-ubuntu:~$ sudo docker run -d -p 3306:3306 --name websocket-mysql -v /mydata:var/lib/mysql -e MYSQL_ROOT_PASSWORD=root123 mysql:8.0

(3)处理连接不上数据库问题

  • mysql远程链接,报2059策略问题
  • 解决方案有两
    — 升级你的MySQL客户端库到支持caching_sha2_password的版本
    — 更改MySQL用户的认证插件回到mysql_native_password
    首先进入这个容器,登录mysql
    1. --登录容器
    2. docker exec -it mysql bash
    3. --登录mysql
    4. mysql -u root -p
    运行下面命令
    1. use mysql;
    回到之前的认证插件
    1. ALTER USER 'root'@'%' IDENTIFIED WITH 'mysql_native_password' BY '123456
    刷新生效
    1. flush privileges;

3.部署后端代码(cool-admin-midway)

(1)安装midway镜像

  1. ubuntu@VM-8-5-ubuntu:~$ sudo docker build -t midway /home/ubuntu/cooltest/midway

(2)运行midway容器:

  1. ubuntu@VM-8-5-ubuntu:~$ sudo docker run -p 8001:8001 --name mymidway midway

(3)通过服务器ip+端口号8001,即可访问到后端项目

4.部署前端代码(cool-admin-vue)

(1)先打包前端vue项目dist,将其放在一个文件夹下
(2)编写default.conf文件,这个文件主要写一下代理、路由定向等,刚在刚打包的dist同级目录下

  1. server {
  2. listen 80;
  3. root /usr/share/nginx/html;
  4. index index.html index.htm;
  5. if ($request_method = 'OPTIONS') {
  6. return 204;
  7. }
  8. location /api/ {
  9. proxy_pass http://119.29.237.177:8001/;
  10. proxy_set_header Host $host;
  11. proxy_set_header X-Real-IP $remote_addr;
  12. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  13. proxy_set_header REMOTE-HOST $remote_addr;
  14. #缓存相关配置
  15. #proxy_cache cache_one;
  16. #proxy_cache_key $host$request_uri$is_args$args;
  17. #proxy_cache_valid 200 304 301 302 1h;
  18. #持久化连接相关配置
  19. proxy_connect_timeout 3000s;
  20. proxy_read_timeout 86400s;
  21. proxy_send_timeout 3000s;
  22. #proxy_http_version 1.1;
  23. #proxy_set_header Upgrade $http_upgrade;
  24. #proxy_set_header Connection "upgrade";
  25. add_header X-Cache $upstream_cache_status;
  26. #expires 12h;
  27. }
  28. location / {
  29. try_files $uri $uri/ = 404;
  30. }
  31. }

(3)编写dockerfile文件,也是放在dist的同级目录下

  1. FROM nginx:latest
  2. # 将项目根目录下dist文件夹下的所有文件复制到镜像中 /usr/share/nginx/html/ 目录下
  3. COPY dist/ /usr/share/nginx/html/
  4. COPY default.conf /etc/nginx/conf.d/default.conf

(4)进入到三个文件所在根目录,安装前端镜像

  1. ubuntu@VM-8-5-ubuntu:~$ sudo docker build -t vue_app .

(5)继续安装前端容器(容器暴露端口9000映射到宿主主机的80端口)

  1. ubuntu@VM-8-5-ubuntu:~$ sudo docker run -d -p 9000:80 --name myvue vue_app

(6)通过服务器ip+端口号9000即可访问前端项目(前台,安全组即防火墙要先开通9000端口,前面的数据库3306端口及后端8001端口同理)

本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学