苍穹外卖项目整体都已经开发完全了,但是呢如果每次都在本地启动,会很麻烦,于是我们通过部署到云服务器上,这样就可以随时随地访问了。
注:本文使用的是Centos7
一,安装docker
因为我们是使用docker部署,所以需要首先安装docker,docker是一个轻量化的容器,它有着许多优点,轻量化,非常好的隔离性,等等,下面是一张docker的架构图
我们通过远程软件连接到我们的云服务器,执行一下命令安装docker
- 移除以前的docker相关包
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
- 配置yum源,因为doxker 的服务器的国外,我们访问起来会非常卡,甚至直接无法访问,所以我们配置到阿里云的镜像源
sudo yum install -y yum-utils
sudo yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
- 安装docker以及启动docker
#安装docker
sudo yum install -y docker-ce docker-ce-cli containerd.io
#启动docker
systemctl enable docker --now
- 配置加速,这里额外添加了docker的生产环境核心cgroup,这里使用的是阿里云的镜像加速服务,这里的地址可以自行替换(也可以使用我的)
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://m508xg1j.mirror.aliyuncs.com"],
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
},
"storage-driver": "overlay2"
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
到此我们的docker就安装完成了。
二,进行项目部署准备工作
我们的前端代码是通过ngxin进行访问的,nginx是一个高性能的HTTP和方向代理web服务器,所以我们先创建nginx容器
- 拉取nginx镜像,默认是下载最新版本,不过也可以根据条件下载自己所需版本
docker pull nginx #下载最新版
镜像名:版本名(标签)
docker pull nginx:1.20.1
- 启动容器,我们的配置文件是访问80端口,所以我们将容器的80端口与主机进行映射,然后再选择挂载目录,如果没有需要先自行创建,这里我就不写了,因为我们需要修改nginx的配置文件,如果总是进去容器修改相当麻烦
docker run -d -p 80:80 \
-v /data/html:/usr/share/nginx/html:ro \
-v /data/conf/nginx.conf:/etc/nginx/nginx.conf \
--name mynginx \
nginx
- 这里我们就可以看到我们容器启动了
三,部署前端代码
- 我们通过WinScp将nginx的html下的文件和conf文件传输到前面所对应的挂载目录下
- 然后修改ngxin.conf文件,因为docker的nginx访问路径和Windows有所区别 ,前面是Windows的版本
- 然后重启容器,使配置生效
docker restart 容器ID
- 然后通过云服务的ip加你所映射的端口,进行访问