Bootstrap

从零开始 在腾讯云服务器上使用docker 搭建 vue+django+msyql项目(超详细

  1. 腾讯云服务器环境准备。
    https://buy.cloud.tencent.com/cvm (腾讯云地址)
    根据待部署的项目选择服务器的配置(cpu核数,硬盘容量以及带宽等等)
    在这里插入图片描述购买成功后进入腾讯云的控制台,左边菜单选择实例,然后右边的区域记得你购买服务器时填的区域,就会出现你购买过的服务器。
    在这里插入图片描述
    我们先为这个服务器重置密码,然后进入服务器的终端,进入终端后开始,开始下载docker环境,以centos系统举例:
    一,更新yum

    $ yum install -y yum-utils
    $ yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
    

    二,安装最新版本的Docker

    $ sudo yum install docker-ce docker-ce-cli containerd.io
    

    三,启动并设置开机启动

    $ sudo systemctl start docker
    $ sudo systemctl enable docker
    

    云服务器上的docker安装好之后开始部署项目代码。

  2. 项目部署。
    首先进入本地vue项目的目录执行

    $ npm run build
    

    执行后会在当前目录生成一个名问dist的文件夹
    在这里插入图片描述
    然后该目录下创建Dockerfile文件(名字不能错 不然后续构建镜像会报错找不到文件)和default.conf 文件,Dockerfile文件内容如下:
    在这里插入图片描述
    第一行表示以nginx镜像作为基础镜像,第二行表示将宿主机的dist文件夹下的所有内容拷贝到容器中的nginx的html目录下,以便将dist下的index.html作为项目的首页,第三行表示用自己编写的nginx配置文件替代nginx默认的配置文件。default.conf 文件内容如下:
    root参数的值为首页html文件所在的路径,index的值为首页html文件名字。
    在这里插入图片描述
    在云服务器终端上创建vue项目空文件夹vue_pro,之后在本地的vue项目目录下执行scp命令,将上述文件上传到云服务器上的vue_pro目录下。

    $ scp -r ./dist [email protected]:/vue_pro/
    $ scp ./Dockerfile [email protected]:/vue_pro/
    $ scp ./default.conf [email protected]:/vue_pro/
    

    在这里插入图片描述
    然后在云服务器终端上执行命令构建镜像文件和启动容器。

    $ docker build -t vue_image .
    $ docker run -d -p 80:80 --name vue_app -v /douyin_vue_new/dist:/usr/share/nginx/html vue_image
    

    -p参数的值表示将容器里nginx的80端口映射到宿主机的80端口上,这样访问宿主机的80端口就能进入到nginx的首页了。
    -v参数的值表示将容器中html文件夹与宿主机的dist文件夹同步 这样当修改vue组件代码时,修改之后的内容能实时更新到容器上。

    接下来开始在构造mysql容器。

    $ docker pull mysql
    $ docker run -d -p 3307:3306 --name django_mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:latest 
    

    -e参数的值表示设置数据库root用户的密码。

    接下来开始部署后端django项目。
    进入到django项目目录下,执行¥ pip freeze > requirements.txt,将项目所有依赖包导出到requirements.txt文件里。修改settings文件中数据库配置的内容。
    在这里插入图片描述
    HOST为云服务器ip地址,PORT为mysql容器映射到宿主机上的端口号。

    然后在django项目目录下编写Dockerfile文件(同理名字得一样),starts.sh脚本文件,和pip.conf配置文件。Dockerfile文件内容如下:
    在这里插入图片描述

    starts.sh脚本文件会在由镜像构建成为容器自动运行, 这样就能自动启动django服务了,内容如下:
    在这里插入图片描述
    这里注意启动的ip地址要写0.0.0.0,一定不能写127.0.0.1,不然外部不能访问django的api接口了。
    pip.conf配置文件目的是为了切换容器系统内pip的源,让python的依赖包安装的更快,内容如下:
    在这里插入图片描述
    此时django项目的目录结构如下:
    在这里插入图片描述
    同样,在云服务器上创建django项目空文件夹django_pro,通过scp命令将django项目代码上传到云服务器上的django_pro目录下。$ scp ./ [email protected]:/django_pro/
    最后在云服务器上该目录下执行docker命令构建django项目镜像并启动容器:

    docker built -t django_web .
    docker run -it -p 8000:8000 -v /django_pro:/app django_pro /bin/bash
    

    同样及得要同步代码目录 以便能随时能同步修改。
    然后运行docker ps,能看到我们刚刚启动的三个容器:
    在这里插入图片描述

    这时,我们打开浏览器,输入 81.68.194.194(云服务器ip):80 就能访问到我们的项目首页啦!
    在这里插入图片描述

;