文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

实战基于Docker部署Nginx应用网站

2024-12-01 19:18

关注

​想了解更多关于开源的内容,请访问:​

​51CTO 开源基础软件社区​

​https://ost.51cto.com​

一、准备工作

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

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

我们先打开华为云找到容器。

这里我们可以看到一个叫做容器镜像服务 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

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

(2)设置下载源

sudo yum install -y yum-utils  
sudo yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

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

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

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

(3)设置镜像加速

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

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

完成之后可以使用docker info来查看是否修改成功。

这个registry mirrors变成你写进去的地址那么就成功了。

(4)下载nginx

接下来,我们就可以使用docker pull命令来下载nginx了。

下载完成之后我们再使用docker images命令来查看下载好的镜像。

可以看到到这里我们就已经基本做好准备工作了。接下来我需要对文件进行处理,方便我们对docker里的nginx服务器里的网页进行配置修改和网页修改。也就是使用我们的数据卷技术。

三、配置我们的nginx

(1)配置文件

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

他们的地址分别为:

/etc/nginx/conf.d

/etc/nginx/nginx.conf

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

(2)配置网页

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

(3)操作

所以我们需要创建两个文件夹。

然后把自己准备好的打包好了的网页放进来。

接下来就去操作配置文件了。

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

之后我们就可以去网站上测试一下了看像是否成功。

这样就可以了。

​想了解更多关于开源的内容,请访问:​

​51CTO 开源基础软件社区​

​https://ost.51cto.com​​。

来源:鸿蒙社区内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯