当前位置: 首页 > news >正文

中小企业网站推广北京设计院

中小企业网站推广,北京设计院,重庆网站推广方法大全,手机html5网站模板在常见的软件架构体系中#xff0c;容器无疑是一个技术热点。有些开发者在工作中熟练使用容器技术#xff0c;有些可能刚刚开始容器之旅。 面对容器使用经验不同的各类开发者#xff0c;我们希望通过这个系列文章#xff0c;由浅入深地介绍如何使用容器技术来构建#xf…在常见的软件架构体系中容器无疑是一个技术热点。有些开发者在工作中熟练使用容器技术有些可能刚刚开始容器之旅。 面对容器使用经验不同的各类开发者我们希望通过这个系列文章由浅入深地介绍如何使用容器技术来构建运维我们的软件应用程序。 贯穿整个系列我们将持续构建一个名为 Picturesocial 的应用。 它是一个可以分享照片的社交媒体平台。通过 Picturesocial 应用的构建过程我们将和开发者分享如何选择合适的应用架构心得和实践。 亚马逊云科技开发者社区为开发者们提供全球的开发技术资源。这里有技术文档、开发案例、技术专栏、培训视频、活动与竞赛等。帮助中国开发者对接世界最前沿技术观点和项目并将中国优秀开发者或技术推荐给全球云社区。如果你还没有关注/收藏看到这里请一定不要匆匆划过点 这里让它成为你的技术宝库 在开始之前我们需要先了解一些关于容器的概念这样后面的学习会更轻松些。 什么是容器 请想象你正身处自己梦幻般的客厅优雅的壁纸、可坐可卧的舒适沙发、精致的咖啡桌和几盏柔和的台灯。一切都如你所愿但突然间你却不得不搬到另一处毛坯房并且需要自己装修。所以你想要把卧室以及客厅设置在邮轮海运的集装箱里。你的完美客厅和卧室就可以跟着你去到世界各地也可以跟着你在汪洋大海里远航还可以随着卡车在安第斯山脉中穿行甚至可以在晴空万里中飞翔 …… 我们所说的容器就是这样一个概念应用程序、运行时环境、文件系统都按照预先设计的逻辑进行编排打包好比是你的精致客厅被打包进了集装箱并在任何支持容器的环境中执行。这种设计让开发者们无比振奋因为有了容器应用就有了足够的灵活性可以自由运行在任何需要它的地方。并且不用对它做任何更改。 应用的容器化并没有将像数据库或队列管理器这样的依赖打包进去。所以当我们计划将容器从一个环境转移到另一个环境运行时应该预留一个位置来存放应用的环境配置比如数据库连接字符串、时区设置等等。 这一点非常重要它可以让应用从开发到质量安全审查再到生产部署等各个阶段都能保持配置一致性。 当应用最终通过安全审查并进行部署时我们就可以确信它配置了正确的数据库或依赖项。也正因为这种一致性才不会出现高并发生产环境中的应用意外使用了开发环境的配置使得整个应用连上了本地数据库并最终导致所有用户的名字和内容都变成了开发过程中写的那些占位符。 {镜像 /Image}容器镜像是容器解决方案中最重要的部分因为应用程序及其状态就存在于此。当我们使用Docker构建应用程序及其 Dockerfile 时就会产生容器镜像。容器镜像就像旧式的 ISO 文件可以捕获计算机上的各种元素并且可以在任何地方使用。但与 ISO 相比容器镜像只包含操作系统组件、库、运行时和应用程序的一小部分所以体积更小计算要求也更少。总之容器镜像允许我们打包应用程序及其依赖项并可以在任何地方高效运行。 {容器 /Container}当镜像被部署并开始执行时它就被称为容器。 {引擎 /Engine}容器需要在已经安装了 Docker 的环境中运行。Docker 是通过 API 与其所处的硬件进行通信的这些 API 就是引擎的一部分。正是因为 Docker 引擎容器才能获得主机的算力、存储和网络资源。 {镜像注册库/Registry}注册库是提供存放容器镜像的网络服务。它可以存放公共镜像也允许上传私有镜像。在注册库中存放的镜像可以有最近的版本也可以有曾经使用过的标签还可以包含某些元数据信息1) 镜像上传时间2) 镜像上传者3) 镜像拉取时间。所以我们无法脱离注册库来讨论容器技术甚至当我们在本地使用容器时本机就是注册库。 Dockerfile 文件 现在我们已经对容器相关的概念有了一定的了解接下来再深入了解容器最重要的文件之一Dockerfile 文件。 以我的经历来看Dockerfile 就好像是当年我刚参加工作当实习生时所写的东西。当年我们一些实习生被分配了编写使用说明书的工作就是写那种既没人读出问题了也不管用的文档。一边编写一边阅读手册的经历让我发现我们写的说明书实用性差的主要问题在于手册是人写给人看的由于每个人的表达习惯不同以及阅读能力的局限性它往往被诟病“描述得不清晰、不准确”。Dockerfile 则是人写给机器读的所以它一定要写得无比准确从而避免出现任何解释执行方面的问题。 FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build-env WORKDIR /app # Copy everything COPY . ./ # Restore as distinct layers RUN dotnet restore # Build and publish a release RUN dotnet publish -c Release -o out # Build runtime image FROM mcr.microsoft.com/dotnet/aspnet:6.0 WORKDIR /app COPY --frombuild-env /app/out . EXPOSE 5111 ENV ASPNETCORE_URLShttp://:5111 ENTRYPOINT [dotnet, HelloWorld.dll] 大部分的 Dockerfile 都会以 FROM 语句开始。这个语句说明了你自己的镜像是基于哪个基础镜像来构建的。举个例子假如你想要创建一个需要往 Ubuntu 20.04 的实例上写入一个文件的容器那么你可以选择这样写 FROM 语句 FROM ubuntu:20.04 从上面的例子我们可以总结出FROM 语句最基本的部分是它所使用的标签 ubuntu 是镜像的名称。我们在 Docker Hub 可以找到数以百万的公有镜像来使用而我们可以直接使用或是基于它们构建自己的镜像 20.04 是 ubuntu 镜像的版本。从结构上来说所有位于 “:” 之后的部分都是镜像的标签。你可以通过不同的标签来指定应用的版本、环境、语言等等。从 ubuntu 镜像的 Docker Hub 页面我们可以找到许多不同的可用标签: https://hub.docker.com/_/ubuntu?tabdescription?trkcndc-detail Dockerfile 中还有一些重要的命令 RUN用于在容器中执行多条 Bash 命令。你可以在同一个 Dockerfile 中多次使用 RUN 语句。 RUN mkdir demo 当这条语句被执行时会在容器内创建一个名为 demo 的文件夹。 CMD也可以执行 Bash 命令但是只可以被使用一次。假如同一个 Dockerfile 中出现了多次那么只有最后一条会被执行。CMD 只用于为容器提供默认的行为比如 CMD [echo, Hello World] 在 Docker 构建时将输出 “Hello World” 这句话。 如果你希望更深入了解 Dockerfile 中的命令Docker 官方提供的文档会非常有用 https://docs.docker.com/engine/reference/builder/#cmd?trkcnd... 如果你想为某种编程语言或是运行时环境找一些样例可以访问另一则文档 https://docs.docker.com/samples/?trkcndc-detailDockerfile 就好比一本食谱我们可以在任何相似的应用部署中重复使用它们。比如我会在 Picturesocial 所公开给外部的全部接口上使用同样的一个 .NET 6 Dockerfile 模板。 容器注册库 ECR 我们再来深入认识一下亚马逊云科技提供的容器注册库吧。 我们可以使用 Amazon Elastic Container Registry (Amazon ECR) 来存放自己的容器镜像它们可以是公开的也可以是私有的。这样做的好处是由 Amazon Identity and Access Management (Amazon IAM) 服务来管理所有对自己镜像的访问而不是使用来自外部的凭证信息。 上手实践 下面让我们通过一个具体的实验了解如何将一个 API 容器化然后推送到 Amazon ECR 中。 准备工作 注册/登录一个亚马逊云科技账号 https://signin.amazonaws.cn/signup?request_typeregisternc2... 如果你正在使用的电脑是 Linux 或 macOS 操作系统的可以跳过这一条。如果你正在使用 Windows建议使用 WSL2 https://docs.microsoft.com/en-us/windows/wsl/install?trkcndc... 安装 Git https://github.com/git-guides/install-git?trkcndc-detail 在你的电脑上安装 Docker https://docs.docker.com/engine/install/?trkcndc-detail 安装 Amazon CLI 2 https://docs.amazonaws.cn/cli/latest/userguide/getting-starte... 如果第一次接触 Amazon CLI或者想要了解怎样配置其凭证信息我们建议参考下面文档中来配置本地环境 https://docs.amazonaws.cn/aws/latest/userguide/managing-aws.h... 我们会学习如何将一个用 C# 开发的 .NET 6 API 容器化封装。这个 API 将会把我们通过参数传递过去的文字返回。同时此 API 还会作为 Picturesocial 所有 API 的模板来使用。这样从本地开发调试进展到云端部署时不再需要修改编排方案、脚本、依赖项并且当应用的代码发生变化时这些不相关项能保持一致性。这也是我们整个应用容器化的主要原因。 我们在 GitHub 上创建了一个仓库 https://github.com/aws-samples/picture-social-sample?trkcndc-detail 里面包含了完成接下来这些步骤需要用到的代码。在开始之前请确保克隆后的分支切换到了 “ep1”。 首先克隆上述基础代码仓库。里面包含了此 API 需要的所有文件以及一个稍后会用于创建容器镜像的 Dockerfile 文件。 git clone https://github.com/aws-samples/picture-social-sample --branch ep1 克隆完成后我们打开新创建的目录。为了能够让后面的步骤进展顺利、代码执行无误请时刻记得将这个目录作为我们的工作目录。 cd picture-social-sample/HelloWorld 在进入后续步骤之前我们需要先确保 Docker 正确安装并且正在运行中。我们尝试执行下面的代码如果没有问题应该会看到输出了 “Docker version 20.10”由于 Docker 引擎持续更新中并且在不同平台上你看到的版本号及后缀可能略有差异。 当我们查看 Dockerfile 文件会发现和刚才分享的完全一致的文件结构。放心修改和尝试比如试试这些更改 添加一行在构建阶段中输出 “Hello World” 的语句。 RUN echo Hello World 将 WORKDIR 从 app 改为 api记得将后面第 2、11、12 行用到 app 的部分也改为 api。 接下来开始构建容器的镜像。我们需要用 docker build 命令说明要执行的操作然后用 -t 选项指明镜像的名字。镜像的名字参考此前提到的 imageName:tagName 结构如果我们没有写 tagName 的部分Docker 默认会使用 latest。最后还要加上 Dockerfile 所处的目录。由于我们现在的工作目录正是项目根目录所以只需要使用 . 指代。 docker build -t helloworld:latest . 我们注意到一个细节。如果正在使用基于 Apple Silicon 芯片的 MacBook 系列电脑那么这个命令会有些许不同。我们要通过一个选项要求 Docker 将镜像构建成可以在 AMD64 体系结构的系统中执行。 docker buildx build —platformlinux/amd64 -t helloworld:latest . 现在就可以在本地通过 docker run 命令启动容器了。使用 -d 选项能够让容器以后台服务形式运行-p 选项可以将容器的端口与主机进行映射。此前在 Dockerfile 中我们制定了容器会使用 5111 端口所以这里我们将同一个端口号进行映射执行。 docker run -d -p 5111:5111 helloworld:latest 执行完上面的命令后我们可以打开浏览器然后访问 http://localhost:5111/api/HelloWorld/johndoe?trkcndc-detail, 屏幕上应该会显示 “Hello johndoe”。可以更改 URL 中的 johndoe 为其他值来试试看。既然我们获得了预期的输出那就说明容器运转正常接下来就可以进一步将其上传到 Amazon ECR 了。 接下来我们要在 Amazon ECR 创建一个名为 “helloworld” 的私有容器注册库 aws ecr create-repository --repository-name helloworld 随后我们要得到刚创建的注册库的全限定域名 (FQDN)以便后续步骤中用来标记限定仓库的名称。这样一来就能让 Docker 明确我们会将这个镜像名用于远程注册库而不是使用现在正运行在本地开发环境中的镜像名。这个项目中我们创建的 Amazon ECR 位于 us-east-1 区域所以你可以根据这些信息构造出完整的 FQDN 字符串 [aws account id].dkr.ecr.[aws region].amazonaws.com #for example for account id: 777777777777 on region: us-east-1 777777777777.dkr.ecr.us-east-1.amazonaws.com 现在已经知道了注册库的 FQDN我们需要登录 Docker 控制台。参考下面的命令别忘了把 Amazon 账户 ID 和区域信息替换或是直接使用刚才得到的 FQDN。登录 Docker 后本地环境就具备了向 Amazon ECR 推送镜像的权限。 aws ecr get-login-password --region us-east-1 \| docker login --username AWS \--password-stdin [aws account id].dkr.ecr.[aws region].amazonaws.com 此时现在我们可以推送镜像了。但要记得先根据 FQDN 修改要推送的镜像的名字再推送到 Amazon ECR。 docker tag helloworld:latest [aws account id].dkr.ecr.[aws region].amazonaws.com/helloworld:latestdocker push [aws account id].dkr.ecr.[aws region].amazonaws.com/helloworld:latest 到了这里说明已经成功了恭喜成功容器化了自己的首个应用 我们会持续更新这个系列内容包括容器编排服务 (Container Orchestrator)是什么以及为什么我需要使用容器编排服务…. 希望你开心工作认真生活~ 请持续关注 Build On Cloud 微信公众号了解更多面向开发者的技术分享和云开发动态 往期推荐 #Generative AI 新世界 #开发者生态 #亚马逊的开源文化 文章作者 Ana Cunha、Jose Yapur Developer Advocate, Amazon Web Services 文章译者 郑予彬 亚马逊云科技资深开发者布道师 文章来源https://dev.amazoncloud.cn/column/article/648c1546f3f2f7504c1f114b?sc_mediumregulartrafficsc_campaigncrossplatformsc_channelCSDN
http://www.zqtcl.cn/news/533610/

相关文章:

  • 做网站网站内容怎么找微信公众号免费做影视网站
  • 投资公司网站建设意义做一个网站成本大概多少钱
  • 网站建设的简洁性wordpress积分换购
  • 手机网站赏析做外贸女装有哪些网站有哪些
  • 网站建设与管理考察报告建材网站开发
  • 张家港专业做网站网站点击量 哪里查询
  • 网站设计软件开发论文网站建设的参考文献
  • 专业建筑工程网站陇西做网站的公司
  • 请别人做网站会不会被盗有创意的广告图片及赏析
  • qq官方网站在家有电脑怎么做网站
  • 做计量检定的网站网站建设专业可行性分析
  • 上饶市建设局网站电脑课做网站所需的软件
  • 广州论坛建站模板网站开发流程原理
  • 网站开发深入浅出 - python篇四川网络营销
  • 做外贸比较好用的网站有哪些网站logo教程
  • 自适应产品网站模板坪地网站建设信息
  • 如何免费推广网站简历生成网站
  • 专业建站开发影视软件开发定制
  • jsp网站开发什么框架中山h5模板建站
  • 网页qq登陆网站旅游网站开发的国内外现状
  • 电影发布网站模板天津网络维护公司
  • 如何用ae做模板下载网站平面设计线上培训机构
  • 地方宣传网站建设的必要性汕头企业网站建站模板
  • html网站源代码网站非法字符过滤
  • 江苏盐城建筑公司网站网络服务提供商是指什么
  • 汕头网站搜索优化视频广告制作
  • 靖边县建设局网站苏州企业网站建设公司价格
  • 沈阳微网站三好街 网站建设
  • 毕业答辩ppt模板免费下载网站网站域名使用怎么做分录
  • 建设购物网站要求网页制作与网站建设 pdf