Docker+Nginx+MySQL+Vue+Django部署web应用

一.实验目的

  1. 理解并熟悉掌握docker容器的使用
  2. 了解掌握Web应用的部署
  3. 掌握在Docker下构建Web应用镜像和容器并部署到服务器

二.实验资源包,版本号

以下资源包均是在docker仓库里拉取的或者在docker环境构建的:
CentOS 7.6
Docker-CE 20.10.0
Nginx 1.19.5
MySQL 5.7
Python 3.8.2
Django 3.1.2

三.实验内容

  1. Docker的安装及测试(Docker-CE 20.10.0)

    1)安装必要的一些系统工具

    [root@VM-0-13-centos data]# yum install -y yum-utils device-mapper-persistent-data lvm2
    

Docker+Nginx+MySQL+Vue+Django部署web应用_第1张图片

2)添加软件源信息

[root@VM-0-13-centos data]# yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

Docker+Nginx+MySQL+Vue+Django部署web应用_第2张图片

3)更新并安装Docker-CE(社区版Docker)

[root@VM-0-13-centos data]# yum makecache fast
[root@VM-0-13-centos data]# yum -y install docker-ce

Docker+Nginx+MySQL+Vue+Django部署web应用_第3张图片

4)开启Docker服务

[root@VM-0-13-centos data]# service docker start 

在这里插入图片描述

5)查看Docker版本

[root@VM-0-13-centos data]# docker version

Docker+Nginx+MySQL+Vue+Django部署web应用_第4张图片

6)测试运行hello-world

[root@VM-0-13-centos data]# docker run hello-world

Docker+Nginx+MySQL+Vue+Django部署web应用_第5张图片

7)镜像加速(因为国外的镜像较慢,所以换成国内的,这里是阿里云的,也可以换成其他国内服务商的)

[root@VM-0-13-centos ginet]# mkdir -p /etc/docker
[root@VM-0-13-centos ginet]# tee /etc/docker/daemon.json <<-'EOF'
{
     
  "registry-mirrors": ["https://rsnoyp92.mirror.aliyuncs.com"]
}
EOF
[root@VM-0-13-centos ginet]# systemctl daemon-reload
[root@VM-0-13-centos ginet]#  systemctl restart docker

Docker+Nginx+MySQL+Vue+Django部署web应用_第6张图片

  1. 根据要部署应用构建相应的镜像

    1)Python-Django后端镜像(python3.8.2)

    1. 进入Django文件目录,查看目录文件
    [root@VM-0-13-centos /]# cd /data/software/ginet
    [root@VM-0-13-centos ginet]# ls
    

在这里插入图片描述

  1. 创建Dockerfile文件并编辑镜像构建内容
[root@VM-0-13-centos ginet]# vi Dockerfile

在这里插入图片描述
Dockerfile文件内容解释

# 使用的是基于python3.8.2的Linux的镜像 该Python基于Linux-Debian系统
FROM python:3.8.2
# RUN 执行一个命令 在我们要构建的镜像里递归创建一个文件夹
RUN mkdir /data/prj/ginet -p
# 然后将当前Dockerfile位于的目录里的所有文件复制到之前在镜像里创建的那个文件里
COPY . /data/prj/ginet
# 指明面的命令的工作目录
WORKDIR /data/prj/ginet
# 更新pip版本
RUN pip install --upgrade pip
# 换成清华的镜像源 下载要快一些
RUN pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
# 安装requirements.txt文件里写的依赖项
RUN pip install -r requirements.txt -i  https://mirrors.aliyun.com/pypi/simple/
# 指明工作目录
WORKDIR /data/prj/ginet
# CMD在镜像启动时执行的命令 在这里就是以8000端口启动Django项目
CMD python manage.py runserver 0.0.0.0:8000

Docker+Nginx+MySQL+Vue+Django部署web应用_第7张图片

  1. 创建requirements.txt文件并编辑构建镜像所要安装的依赖
[root@VM-0-13-centos ginet]# vi requirements.txt

在这里插入图片描述
requirements.txt文件内容

# 安装的依赖
django
PyJWT
PyMySQL
djangorestframework
oss2
uwsgi
django-cors-headers

Docker+Nginx+MySQL+Vue+Django部署web应用_第8张图片

  1. 创建文件后的目录
[root@VM-0-13-centos ginet]# ls

在这里插入图片描述

  1. 构建镜像
[root@VM-0-13-centos ginet]# docker build . -t ginet:v1

Docker+Nginx+MySQL+Vue+Django部署web应用_第9张图片

  1. 镜像构建成功

在这里插入图片描述
在这里插入图片描述

2)同第一个一样 构建后台管理的后端镜像

[root@VM-0-13-centos /]# cd /data/software/ginetser
[root@VM-0-13-centos ginetser]# vi Dockerfile
[root@VM-0-13-centos ginetser]# vi requirements.txt
[root@VM-0-13-centos ginetser]# docker build . -t ginetser:v1
[root@VM-0-13-centos ginetser]# docker images

Docker+Nginx+MySQL+Vue+Django部署web应用_第10张图片

3)构建前台页面镜像

  1. 进入项目目录

    [root@VM-0-13-centos zyw]# cd /data/software/zyw
    [root@VM-0-13-centos zyw]# ls
    

在这里插入图片描述

  1. 编辑Dockerfile

    [root@VM-0-13-centos zyw]# vi Dockerfile
    

在这里插入图片描述
Docekrfiel文件内容解释

# 表示我的镜像是基于nginx修改的 
FROM nginx
# 创作者 yanggeol
MAINTAINER yanggeol
# 把我的项目cd/里的所有文件复制到/usr/share/nginx/html/    cd/可以改成自己的项目目录
COPY cd/  /usr/share/nginx/html/
# 把Nginx的配置文件覆盖镜像里面的nginx.conf文件
COPY nginx.conf /etc/nginx/nginx.conf
# 镜像构建完成后输出的提示
RUN echo 'echo init ok!!'


Docker+Nginx+MySQL+Vue+Django部署web应用_第11张图片

  1. 编辑nginx.conf配置文件

    [root@VM-0-13-centos zyw]# vi nginx.conf
    

在这里插入图片描述
Nginx.conf的配置文件

worker_processes  3;

events {
     
    worker_connections  1024;
}

http {
     
    include       mime.types;
    default_type  application/octet-stream;

    server {
     
        listen       8080;    # 端口号
        server_name  localhost;     # 服务器IP地址或域名

        location / {
     
            root   /usr/share/nginx/html;     # 网站主页路径
            index  index.html index.htm;     #  index.html为网站主页的名称
        }
        error_page   500 502 503 504  /50x.html; 
    }
}


Docker+Nginx+MySQL+Vue+Django部署web应用_第12张图片

  1. 创建后的目录

    [root@VM-0-13-centos zyw]# ls
    

在这里插入图片描述

  1. 构建镜像

    [root@VM-0-13-centos zyw]# docker build . -t zyw:v1
    
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201214000009907.PNG#pic_center)
  1. 构建镜像成功

    [root@VM-0-13-centos zyw]# docker images
    

Docker+Nginx+MySQL+Vue+Django部署web应用_第13张图片

4)构建后台管理页面的镜像

  1. 同构建前台一样构建镜像

    [root@VM-0-13-centos /]# cd /data/software/downer
    [root@VM-0-13-centos ginetser]# vi Dockerfile
    [root@VM-0-13-centos ginetser]# vi nginx.conf
    [root@VM-0-13-centos ginetser]# docker build . -t downer:v1
    [root@VM-0-13-centos ginetser]# docker images
    

    添加文件后的目录

在这里插入图片描述

  镜像构建成功后

Docker+Nginx+MySQL+Vue+Django部署web应用_第14张图片

5)构建MySQL数据库的镜像

  1. 拉取Docker官方镜像库里的mysql镜像并启动

Docker+Nginx+MySQL+Vue+Django部署web应用_第15张图片
在这里插入图片描述

  1. 启动应用容器

    1)启动后端容器

    -p:自定义端口

    8000:8000:将容器内的8000端口映射到服务器的8000端口

    ginet:v1,要启动作为容器的镜像名称及版本

    [root@VM-0-13-centos ~]# docker run -p 8000:8000 ginet:v1
    

Docker+Nginx+MySQL+Vue+Django部署web应用_第16张图片

在浏览器测试后端接口

Docker+Nginx+MySQL+Vue+Django部署web应用_第17张图片

查看容器

[root@VM-0-13-centos ~]# docker ps -a

在这里插入图片描述

2)启动后台服务接口

-p:自定义端口

8001:8001:将容器内的8001端口映射到服务器的8001端口

ginetser:v1,要启动作为容器的镜像名称及版本

[root@VM-0-13-centos ~]# docker run -p 8001:8001 ginetser:v1

在浏览器测试后端接口

Docker+Nginx+MySQL+Vue+Django部署web应用_第18张图片

查看容器

[root@VM-0-13-centos ~]# docker ps -a

在这里插入图片描述

3)启动后台管理的容器

-p:自定义端口

8888:8888:将容器内的8888端口映射到服务器的8888端口

downer:v1,要启动作为容器的镜像名称及版本

[root@VM-0-13-centos ~]# docker run -p 8888:8888 downer:v1

Docker+Nginx+MySQL+Vue+Django部署web应用_第19张图片

在浏览器测试后台

Docker+Nginx+MySQL+Vue+Django部署web应用_第20张图片

查看容器

[root@VM-0-13-centos ~]# docker ps -a

在这里插入图片描述

4)启动前台页面的容器

-p:自定义端口

8080:8080:将容器内的8080端口映射到服务器的8080端口

zyw:v1,要启动作为容器的镜像名称及版本

[root@VM-0-13-centos ~]# docker run -p 8080:8080 downer:v1

Docker+Nginx+MySQL+Vue+Django部署web应用_第21张图片

在浏览器测试前台页面

[root@VM-0-13-centos ~]# docker ps -a

在这里插入图片描述
5)启动后的所有容器
在这里插入图片描述

  1. 数据库容器
  2. 后台容器
  3. 前台容器
  4. 后台接口容器
  5. 前台接口容器

你可能感兴趣的:(服务器,服务器,运维,nginx,docker,centos)