准备工作,先安装docker
sudo apt-get update
sudo curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | apt-key add -
sudo apt-get -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo systemctl start docker
sudo systemctl enable docker
sudo docker -v
(1)拉取官方Nginx镜像
ubuntu@VM-8-5-ubuntu:~$ sudo docker pull nginx:latest
(2)运行Nginx容器:
ubuntu@VM-8-5-ubuntu:~$ sudo docker run --name nginx-test -p 8080:80 -d nginx
(1)拉取MySQL官方镜像:
ubuntu@VM-8-5-ubuntu:~$ sudo docker pull mysql:8.0
(2)运行MySQL容器:
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)处理连接不上数据库问题
运行下面命令
--登录容器
docker exec -it mysql bash
--登录mysql
mysql -u root -p
回到之前的认证插件
use mysql;
刷新生效
ALTER USER 'root'@'%' IDENTIFIED WITH 'mysql_native_password' BY '123456
flush privileges;
(1)安装midway镜像
ubuntu@VM-8-5-ubuntu:~$ sudo docker build -t midway /home/ubuntu/cooltest/midway
(2)运行midway容器:
ubuntu@VM-8-5-ubuntu:~$ sudo docker run -p 8001:8001 --name mymidway midway
(3)通过服务器ip+端口号8001,即可访问到后端项目
(1)先打包前端vue项目dist,将其放在一个文件夹下
(2)编写default.conf文件,这个文件主要写一下代理、路由定向等,刚在刚打包的dist同级目录下
server {
listen 80;
root /usr/share/nginx/html;
index index.html index.htm;
if ($request_method = 'OPTIONS') {
return 204;
}
location /api/ {
proxy_pass http://119.29.237.177:8001/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header REMOTE-HOST $remote_addr;
#缓存相关配置
#proxy_cache cache_one;
#proxy_cache_key $host$request_uri$is_args$args;
#proxy_cache_valid 200 304 301 302 1h;
#持久化连接相关配置
proxy_connect_timeout 3000s;
proxy_read_timeout 86400s;
proxy_send_timeout 3000s;
#proxy_http_version 1.1;
#proxy_set_header Upgrade $http_upgrade;
#proxy_set_header Connection "upgrade";
add_header X-Cache $upstream_cache_status;
#expires 12h;
}
location / {
try_files $uri $uri/ = 404;
}
}
(3)编写dockerfile文件,也是放在dist的同级目录下
FROM nginx:latest
# 将项目根目录下dist文件夹下的所有文件复制到镜像中 /usr/share/nginx/html/ 目录下
COPY dist/ /usr/share/nginx/html/
COPY default.conf /etc/nginx/conf.d/default.conf
(4)进入到三个文件所在根目录,安装前端镜像
ubuntu@VM-8-5-ubuntu:~$ sudo docker build -t vue_app .
(5)继续安装前端容器(容器暴露端口9000映射到宿主主机的80端口)
ubuntu@VM-8-5-ubuntu:~$ sudo docker run -d -p 9000:80 --name myvue vue_app
(6)通过服务器ip+端口号9000即可访问前端项目(前台,安全组即防火墙要先开通9000端口,前面的数据库3306端口及后端8001端口同理)
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号