• 实战基于Docker部署NGINX应用网站


    一.准备工作

    首先我们需要准备一个服务器,一个打包好了的前端应用网站,动态网站的话还需要一个后端。

    这里我就以华为云为例。当然服务器就全看大家的荷包了,

    我们先打开华为云找到容器
    在这里插入图片描述
    这里我们可以看到一个叫做容器镜像服务 SWR的产品,点进去。点击立即使用。找到这个点击,有了这个我们就可以进行镜像加速
    在这里插入图片描述
    在这里插入图片描述
    这个地址在后面就会使用到,当然我们这个不仅仅是华为云有,像阿里云, 腾讯云这些也是有的。找的方法也差不多,还有一些地址可以看我前面几篇的文章也是有写的。
    接下来我们就可以去xshell里面进行操作了

    二. 下载docker

    这里我们使用docker来进行部署,所以我们需要先去下载一下docker。详细的可以看我这篇文章,这里我们就加加速。

    (1)卸载旧版本

    首先先使用

     sudo yum remove docker \
                      docker-client \
                      docker-client-latest \
                      docker-common \
                      docker-latest \
                      docker-latest-logrotate \
                      docker-logrotate \
                      docker-engine
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    卸载旧版本,如果有的话(看情况自己判断)。

    (2)设置下载源

    sudo yum install -y yum-utils  
    
    sudo yum-config-manager \
        --add-repo \
        http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    
    • 1
    • 2
    • 3
    • 4
    • 5

    设置好了之后就行进行下载了,下面是下载代码

     sudo yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin
    
    
    • 1
    • 2

    注意:这样下载的是最新版本的,如果需要下载指定版本的话可以看我上面说的那篇文章。

    (3)设置镜像加速

    这时我们刚刚进华为云复制的地址就有用处了。当然也还有很多选择。

    sudo mkdir -p /etc/docker
    sudo tee /etc/docker/daemon.json <<-'EOF'
    { "registry-mirrors": ["你的加速地址"] }
    EOF
    sudo systemctl daemon-reload
    sudo systemctl restart docker
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    完成之后可以使用docker info来查看是否修改成功。
    在这里插入图片描述
    这个registry mirrors变成你写进去的地址那么就成功了

    (4)下载nginx

    接下来,我们就可以使用docker pull命令来下载nginx了。
    在这里插入图片描述
    下载完成之后我们再使用docker images命令来查看下载好的镜像。
    在这里插入图片描述
    可以看到到这里我们就已经基本做好准备工作了。接下来我需要对文件进行处理,方便我们对docker里的nginx服务器里的网页进行配置修改和网页修改。也就是使用我们的数据卷技术。

    三. 配置我们的nginx

    (1)配置文件

    首先我们需要先知道,nginx是怎么工作的,nginx有两个配置文件,conf.dnginx.conf其中conf.d是个文件夹,里面有个文件是default.conf

    他们的地址分别为:
    /etc/nginx/conf.d
    /etc/nginx/nginx.conf
    为什么我要提这一嘴呢,因为我们需要对这两个文件进行配置操作,满足我们后续的需求,而在docker中呢下载的nginx镜像是进行缩减过的,只保留了基础的功能,所以我们如果没有使用docker file生成镜像时对nginx进行基本配置是无法在里面使用vivim功能和其他一些所需的操作功能,而且就算有我们每次需要进去配置也是比较的不方便,所以我们需要进行数据卷操作,使我们能够更加简单的方便的来操作docker里的服务。

    (2)配置网页

    这里我需要让我的网址当用户进入是判断是手机用户还是电脑用户然后自行跳转相应的页面。

    (3)操作

    所以我们需要创建两个文件夹
    在这里插入图片描述
    然后把自己准备好的打包好了的网页放进来。
    在这里插入图片描述
    像这样

    接下来就去操作配置文件了。
    在这里插入图片描述

    像我这样创建几个文件夹和文件。这个创建语法这里就不赘述了。然后我们就可以把这几个配置文件给配置一下了。这里先解释一下这几个文件的用途,conf.d是个文件夹,里面有个文件叫default.confnginx.conf文件一样是nginx的配置文件,我们可以在这两个文件中书写一些你所需的配置,像啥负载均衡啊,代理,重写跳转页面啥的都是在这配置。当然我们这里是要通过数据卷和nginx里的配置文件连起来使其生效。这里需要注意一点当我们挂载的是文件时,我们需要给文件设置权限不然容器里的文件内容不会随着主机更改而更改chmod 777 nginx.conflogs文件夹里是日志文件,可以让我们获取到nginx的日志。

    建议:尽量挂载目录而不是挂载文件!

    nginx.conf文件中,我这里进行如下操作。
    在这里插入图片描述意思就是当用户端访问时判断是手机端还是pc端然后跳转到相应的界面。conf.d文件夹中的default.conf也可以进行配置。另外的logs文件夹就不需要去操作了。

    (4)docker run

    接下来我们就可以运行这个容器了,使用docker run命令。
    docker run -d -v /home/nginx-music/html/pc:/usr/share/nginx/html/pc -v /home/nginx-music/nginx/conf.d:/etc/nginx/conf.d -v /home/nginx-music/nginx/nginx.conf:/etc/nginx/nginx.conf -v /home/nginx-music/html/mo:/usr/share/nginx/html/mo -v /home/nginx-music/nginx/logs:/var/log/nginx -v /home/nginx-music/nginx/logs:/var/log/nginx -p 80:80 --name nginx-music-v1.0 nginx
    将对应的主机目录和容器目录或文件进行挂载即可。设置端口映射,命名,后台执行,镜像名。这些命令不理解的话可以看我上两篇文章。

    (5)查看是否成功

    我们可以先通过docker exec -it nginx-music-v1.0 /bin/bash这个命令进入我们的nginx容器进行检测,使用nginx -t先进行测试看看我们的nginx.conf文件的配置语法有无错误
    在这里插入图片描述
    像这样
    之后我们就可以去网站上测试一下了看像是否成功。
    在这里插入图片描述
    在这里插入图片描述
    可以了。。。

  • 相关阅读:
    Python Web APP在宝塔发布
    什么是位域和位段?如何定义和使用位域?
    238.除自身以外数组的乘积
    java健身房管理系统演示录像2021计算机毕业设计MyBatis+系统+LW文档+源码+调试部署
    基于微信小程序的智能停车场管理系统设计与实现-计算机毕业设计源码+LW文档
    解决adb root命令时错误 adbd cannot run as root in production builds
    Redis之集群部署、哨兵集群
    时代风口中的Web3.0基建平台,重新定义Web3.0!
    使用1688开放平台API接口获取商品详情信息
    竞赛选题 深度学习花卉识别 - python 机器视觉 opencv
  • 原文地址:https://blog.csdn.net/weixin_45801664/article/details/126142250