当前位置:首页 > 网站建设 > 正文内容

nginx部署php和vue等多个项目(nginx部署多个网站)

网站建设1年前 (2023-08-19)659

Docker是现在比较流行的开源容器引擎,有了它让我们部署和维护系统更加方便,它 本质上是一个精简版的linux系统,所以它支持.NET跨平台部署。.NET6是微软最新发布的.NET版本,跟前面版本相比速度更快、支持热更新、支持http3等特征。本文介绍如何把.NET 6快速部署到Docker,只需要三个步骤。

第一步 .NET项目准备

首先新建一个.NET6的项目,创建项目时,在“其他信息”选项中选择“启用Docker”。创建项目后会自动生成一个Dockerfile文件,这个文件就是创建Docker镜像的配置文件。 Dockerfile文件也是必要条件,微软官方已经给你配置好了,文章后面有说明。

如果要在windows环境下预览这个项目的话,需要注释掉Properties文件夹下launchSettings.json文件里的docker支持。如下

第二步 执行生成镜像命令

把创建好的项目文件(是整个项目)用工具拷贝到装有Docker-ce环境下的centos网站文件夹下。并cd进入这个文件夹。执行如下命令:

展开全文

结果会提示成功信息:

这个过程主要是根据 Dockerfile文件的配置生成项目并copy到docker创建名为 imagesname、版本号为1.0的镜像。

nginx部署php和vue等多个项目(nginx部署多个网站)

这有两个,一个是未加版本号的,一个是加了版本号创建的。

第三步 执行命令创建网站容器

镜像创建完成后就可以创建并运行容器了。默认是80端口,我们这里指定外网访问5000端口( -p 5000:80),容器名称是mycontaintest1( --name=mycontaintest1),镜像是imagesname1.0版本( imagesname:1.0)

这样我们通过三步完成了把.NET6部署到Docker上了,我们还可以使用Nginx对它做反向代理供外网访问,大家可以尝试一下。

我们来看看效果:

注意:必须 Docker环境和Centos端口环境没有问题的情况下部署,否则会走很多弯路哦。

Docker相关知识点

1、dockerfile常用命令解析

FROM

基础镜像,FROM 命令必须是 Dockerfile 的首个命令

也就是继承那个镜像

LABEL

为镜像生成元数据标签信息

原有指令 MAINTAINER 已经放弃使用,用 LABEL maintainer="你的邮箱" 替代

USER

指定运行容器时的用户名或 UID,后续 RUN 也会使用指定用户

VOLUME

定义匿名卷,容器运行时应该尽量保持容器存储层不发生写操作,为了防止运行时用户忘记将动态文件保存的目录挂载为卷,可以事先指定某些目录挂载为匿名卷。这样就不会向容器存储层写入大量数据

WORKDIR

用于设置 CMD 指明的命令的运行目录

为后续的 RUN、CMD、ENTRYPOINT、ADD 指令配置工作目录。可以使用多个 WORKDIR 指令,后续命令如果参数是相对路径,则会基于之前命令指定的路径。使用 docker exec -it 进入容器后,默认也会进入到 WORKDIR 指定的目录

容器启动时的⼯作⽬录

ENV

指定容器启动时的环境变量(注意,只有在容器启动时,启动脚本能读取到,如果希望其他用户登录到容器也生效的话,需要写入 .bashrc)

设置镜像内的环境变量

COPY

COPY 命令有两个参数,源和目标。它的基本作用是从源系统的文件系统上复制文件到目标容器的文件系统

EXPOSE

指定端口转发

CMD

设置容器创建是执行的默认命令

支持三种格式,默认会被 docker run 指定的参数覆盖。每个容器只能执行一条 CMD 命令。执行的命令和参数当指定多个时,只有最后一个起效

CMD [“executable”, “参数1”,“参数2”]:使用 exec 方式执行,推荐

CMD command 参数1 参数2:shell 方式执行

CMD [“参数1”,“参数2”]:提供给 ENTRYPOINT 做默认参数

启动容器时执行的shell命令

ENTRYPOINT

指定容器的“入口”

支持两种格式,默认不会被 docker run 指定的参数覆盖。可以指定 --entrypoint 参数去覆盖。每个 Dockerfile 中只能有一个 ENTRYPOINT,当指定多个时,只有最后一个起效

ENTRYPOINT [“executable”, “参数1”,“参数2”]:使用 exec 方式执行

推荐 - ENTRYPOINT command 参数1 参数2:shell 方式执行

指定容器启动脚本

HEALTHCHECK

Docker 1.12版本后引入的判断容器运行状态是否正常

ADD

将⼯作⽬录下的某个⽬录或者⽂件copy到镜像的某个路径下

ARG

构建环境的环境变量

RUN

RUN 命令是 Dockerfile 执行命令的核心部分。它接受命令作为参数并用于创建镜像。每条 RUN 命令在当前基础镜像上执行,并且会提交一个新镜像

执⾏shell 命令

2、build 命令用于使用 Dockerfile 创建镜像

语法

docker build [OPTIONS] PATH | URL | -

OPTIONS说明:

--build-arg=[] :设置镜像创建时的变量;

--cpu-shares :设置 cpu 使用权重;

--cpu-period :限制 CPU CFS周期;

--cpu-quota :限制 CPU CFS配额;

--cpuset-cpus :指定使用的CPU id;

--cpuset-mems :指定使用的内存 id;

--disable-content-trust :忽略校验,默认开启;

-f :指定要使用的Dockerfile路径;

--force-rm :设置镜像过程中删除中间容器;

--isolation :使用容器隔离技术;

--label=[] :设置镜像使用的元数据;

-m :设置内存最大值;

--memory-swap :设置Swap的最大值为内存+swap,"-1"表示不限swap;

--no-cache :创建镜像的过程不使用缓存;

--pull :尝试去更新镜像的新版本;

--quiet, -q :安静模式,成功后只输出镜像 ID;

--rm :设置镜像成功后删除中间容器;

--shm-size :设置/dev/shm的大小,默认值是64M;

--ulimit :Ulimit配置。

--tag, -t: 镜像的名字及标签,通常 name:tag 或者 name 格式;可以在一次构建中为一个镜像设置多个标签。

--network: 默认 default。在构建期间设置RUN指令的网络模式

实例

使用当前目录的 Dockerfile 创建镜像,标签为 runoob/ubuntu:v1。

docker build -t runoob/ubuntu:v1 .

使用URL github.com/creack/docker-firefox 的 Dockerfile 创建镜像。

docker build github.com/creack/docker-firefox

也可以通过 -f Dockerfile 文件的位置:

$ docker build -f /path/to/a/Dockerfile .

3、run 创建一个新的容器并运行一个命令

语法

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

OPTIONS说明:

-a stdin: 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项;

-d: 后台运行容器,并返回容器ID;

-i: 以交互模式运行容器,通常与 -t 同时使用;

-p: 端口映射,格式为:主机(宿主)端口:容器端口

-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;

--name="nginx-lb": 为容器指定一个名称;

--dns 8.8.8.8: 指定容器使用的DNS服务器,默认和宿主一致;

--dns-search example.com: 指定容器DNS搜索域名,默认和宿主一致;

-h "mars": 指定容器的hostname;

-e username="ritchie": 设置环境变量;

--env-file=[]: 从指定文件读入环境变量;

--cpuset="0-2" or --cpuset="0,1,2": 绑定容器到指定CPU运行;

-m :设置容器使用内存最大值;

--net="bridge": 指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型;

--link=[]: 添加链接到另一个容器;

--expose=[]: 开放一个端口或一组端口

实例

使用docker镜像nginx:latest以后台模式启动一个容器,并将容器命名为mynginx。

docker run --name mynginx -d nginx:latest

使用镜像nginx:latest以后台模式启动一个容器,并将容器的80端口映射到主机随机端口。

docker run -P -d nginx:latest

使用镜像 nginx:latest,以后台模式启动一个容器,将容器的 80 端口映射到主机的 80 端口,主机的目录 /data 映射到容器的 /data。

docker run -p 80:80 -v /data:/data -d nginx:latest

参考1:https://www.runoob.com/

参考2:https://www.cnblogs.com/Durant0420/p/15486849.html

结语

本文讲述了.net6部署到docker的简单过程,仅供参考,真正项目部署还有很多知识点,这里就不再讲了。其实也可以把.NET项目打包后部署,只需要修改Dockerfile的配置就可以了,大家可以尝试一下。希望本文对大家学习和工作有一定参考价值,同时欢迎大家留言讨论,谢谢大家的支持。

版权声明:本文来源于网友收集或网友提供,仅供学习交流之用,如果有侵权,请转告版主或者留言,本公众号立即删除。

支持小薇

腾讯云福利 :

云服务器入门体验低至6.6元/月,更多浏览

链接:https://curl.qcloud.com/1VVs7OBH

关注: DotNet开发跳槽

觉得不错,请点个在看 呀

扫描二维码推送至手机访问。

版权声明:本文由飞速云SEO网络优化推广发布,如需转载请注明出处。

本文链接:http://muyuzhen.com/post/51810.html

分享给朋友:

“nginx部署php和vue等多个项目(nginx部署多个网站)” 的相关文章

网站地图制作(网站地图怎么生成)

网站地图制作(网站地图怎么生成)

本篇文章给大家谈谈网站地图制作,以及网站地图怎么生成对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 本文目录一览: 1、如何制作网站地图sitemap,经验分享 2、如何利用Site Map Builder工具来制作网站地图 3、制作网站地图用什么软件好啊? 4、请问高手网站地图...

沧州网站优化(沧州网站推广优化)

沧州网站优化(沧州网站推广优化)

本篇文章给大家谈谈沧州网站优化,以及沧州网站推广优化对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 本文目录一览: 1、专业的网站优化是怎么做?像营销型网站。 2、我家空调外机正常工作,但内机不出冷风,怎么回事? 3、沧州青县网站优化哪个公司好?价格实惠,技术过硬的 4、沧州市涛...

兰州网站建设的简单介绍

兰州网站建设的简单介绍

本篇文章给大家谈谈兰州网站建设,以及对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 本文目录一览: 1、想在兰州做网站建设找哪家公司呢? 2、兰州怎么样做好网站建设吗? 3、兰州网站建设怎么提高实用性? 4、兰州网站建设公司怎么样啊? 5、兰州最最专业做网站哪家公司? 6...

关于岳阳网站制作的信息

关于岳阳网站制作的信息

本篇文章给大家谈谈岳阳网站制作,以及对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 本文目录一览: 1、潍坊网站制作公司哪家好?哪家最专业? 2、岳阳易发网络科技有限公司怎么样? 3、岳阳哪里有网站制作公司? 4、岳阳做网站哪家公司好啊? 潍坊网站制作公司哪家好?哪家最专业?...

ppt模板多少钱一个(做一个ppt模板多少钱)

ppt模板多少钱一个(做一个ppt模板多少钱)

今天给各位分享ppt模板多少钱一个的知识,其中也会对做一个ppt模板多少钱进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录一览: 1、找专业PPT设计公司设计制作一个商务宣称的PPT大约多少钱? 2、请人专业代做设计制作一个ppt服务收费多少钱 3、为什么拼多多...

文案视频素材网站免费(文案视频素材网站免费软件)

文案视频素材网站免费(文案视频素材网站免费软件)

今天给各位分享文案视频素材网站免费的知识,其中也会对文案视频素材网站免费软件进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录一览: 1、做视频剪辑从哪找素材? 2、抖音对短视频素材质量要求比较高,有没有什么平台/网站可以提供素材参考? 3、抖音素材库在哪里找...