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

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

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

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://bjqlhc.com/post/51810.html

分享给朋友:

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

关于河南网站制作的信息

关于河南网站制作的信息

今天给各位分享河南网站制作的知识,其中也会对进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录一览: 1、我是负责我们公司网络这一块的,公司现在想再重新做一个网站,谁知道郑州哪家网络公司做网站比较好一点 2、想自己建网站,要怎么弄,要花多少钱? 3、河南最好的FL...

2022北京冬奥会ppT幼儿(2022冬奥PPT)

2022北京冬奥会ppT幼儿(2022冬奥PPT)

本篇文章给大家谈谈2022北京冬奥会ppT幼儿,以及2022冬奥PPT对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 本文目录一览: 1、2022年北京冬奥会小报内容有哪些? 2、冬奥会板报内容2022有哪些? 3、2022小学生必知冬奥会知识有哪些? 4、2022冬奥小学生要知...

国防教育手抄报文字素材(国防教育手抄报文字素材简单)

国防教育手抄报文字素材(国防教育手抄报文字素材简单)

本篇文章给大家谈谈国防教育手抄报文字素材,以及国防教育手抄报文字素材简单对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 本文目录一览: 1、国防教育手抄报内容20字 2、国防教育手抄报的内容 3、国防教育手抄报内容 国防教育手抄报内容20字 国防知识的名言警句1、军民鱼水情深,共建...

犀牛玉雕图片大全(雕刻犀牛图片)

犀牛玉雕图片大全(雕刻犀牛图片)

今天给各位分享犀牛玉雕图片大全的知识,其中也会对雕刻犀牛图片进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录一览: 1、12属相金包玉真品图片大全,十二生肖玉石摆件图片这是真是真的古董妈 2、犀牛和牛的区别在哪里,,,急!!!!! 3、慈禧生前最爱的玉雕是它?原...

免费3d模型库史迪仔(史迪仔图片3D)

免费3d模型库史迪仔(史迪仔图片3D)

今天给各位分享免费3d模型库史迪仔的知识,其中也会对史迪仔图片3D进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录一览: 1、GLTFS模型库的3D模型能免费下载吗? 2、求3d模型下载,免费的。 3、如何下载免费的3d人物模型? 4、有哪个网站可以免费下载...

免费建网站软件下载(建设网站的软件)

免费建网站软件下载(建设网站的软件)

本篇文章给大家谈谈免费建网站软件下载,以及建设网站的软件对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 本文目录一览: 1、哪个网站可以免费下载网页制作软件,怎样制作网页? 2、哪里有免费的建站软件下载? 3、有什么简单的建网站的软件, 4、请推荐几个免费建站软件,简单好用的...