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

西安百度推广网站建设常州淄博网站优化

西安百度推广网站建设,常州淄博网站优化,用网站做淘宝客的人多吗,菲律宾 网站开发公司作者 | Timothy Mugayi译者 | 弯月#xff0c;责编 | 夕颜封图 | CSDN付费下载自视觉中国出品 | CSDN(ID:CSDNnews)在使用Docker的大部分时间里#xff0c;我们并不关心其内部的工作原理。仅凭启动一个Docker容器并且让应用程序运行良好#xff0c;并不能说明你已经实现了一…作者 | Timothy Mugayi译者 | 弯月责编 | 夕颜封图 | CSDN付费下载自视觉中国出品 | CSDN(ID:CSDNnews)在使用Docker的大部分时间里我们并不关心其内部的工作原理。仅凭启动一个Docker容器并且让应用程序运行良好并不能说明你已经实现了一个良好的解决方案。有时由于时间限制我们只能复制粘贴Docker镜像却没能真正理解实现细节以及如何构建Docker镜像的细微差别。在本文中我们将探讨Docker的最佳实践和反模式。反模式是人们对于反复出现的问题的一般解决方案这些方案没有效率甚至会完全抵消Docker技术栈带来的好处。下面我们来看看我们的哪些做法不可取。我们需要的标签标签是必不可少的我们需要通过标签传达有关Docker镜像的信息。你可以将标签视为Docker镜像ID的别称。Git标签负责标记特定的提交而Docker标签与之类似可以给不同时间点上的Docker镜像添加版本。忘记打标签是小事但会带来一些弊端具体来讲如果未指定标记则默认镜像将被标记为latest。FROM your_image_name:latest如果你频繁执行该操作那么很有可能镜像不是最新的可能指向的是旧版本。因此请使用适当的标签并遵守某个版本控制标准例如语义版本控制。这样Docker镜像使用者才能确保Docker镜像的兼容性并时刻保持最新还可以有计划地使用正确的版本。还有一个情况应该避免。你可以利用最新的默认标签(如FROM python3:latest)从Docker镜像仓库中提取最新的镜像。乍一看这种做法似乎是个好主意但却有一些意想不到的副作用每个最新的请求可能都会派生出与以前的构建完全不同的Docker镜像。弄明白Docker镜像损坏的原因将会变得很困难因为镜像本应该是不可变的。因此我强力建议使用特定的标签来标记镜像(例如python3:1.0.1)。这种方法可以确保你的Dockerfile保持不变。在同一个容器中运行多个服务虽然你可以在同一个容器中运行多个服务但我并不建议你这么做原因有两个。在使用Docker服务时我们应该努力维持责任单一性。最佳做法是组成应用程序的每个服务都应在各自的容器中运行请务必将每项独立的功能都打包到单独的独立容器镜像中。将多个服务添加到一个Docker镜像的做法似乎很诱人但是你不应该将容器镜像视为虚拟机。一个容器包含多个服务可能会导致你的应用程序很难水平扩展。Docker容器核心概念是它们都是瞬态的专为分发而设计这对于现代Web应用程序来说很理想因为它的瞬态特性、扩展和并发会非常容易。添加多个服务会增加管理分发的难度。另外单个容器上的多个服务还会加大管理安全性的难度。庞大的镜像可能会降低CI/CD的速度你需要小心。使用LABEL对镜像进行分类这并不能说是反模式但我认为值得一提。我在处理各种Docker镜像时注意到了一件事有时这些镜像的创建者没有使用LABEL maintainer标签。这个标签可在事件中设置镜像的Author字段当出现问题或需要澄清时这个标签可以方便大家了解该与何人内部联系如果镜像是公开共享的也可以知道该与哪个外部的人联系。这绝不是唯一可以使用的标签。你可以根据需要定义各种标签来对镜像进行分类定义许可信息也可以定义标签来帮助自动化。除了maintainer还可以使用多行标签# Set one or more individual labelsLABEL com.example.version0.0.1-betaLABEL vendor1RBTSB IncorporatedLABEL vendor2TIPTAPCODE IncorporatedLABEL com.example.release-date202-04-02LABEL com.example.version.production0.0.1Docker 1.10之前的单行标签会创建新的docker层如果你使用的是最新版的Docker则不必担心创建额外的层。LABEL vendorACME Incorporated com.example.is-beta com.example.is-production com.example.version0.0.1-beta com.example.release-date2015-02-12我们应该将尽可能多的元数据添加到不可变的Docker镜像以方便追踪提高可见性和可维护性。避免构建依赖特定环境的镜像在构建Docker镜像时我们应始终牢记不变性。最好不要使用带有dev、test、staging和production的镜像因为这会破坏单一来源的原则。另一个问题是如果在不同环境上验证或调试则这种做法无法保证镜像的相似。为什么要使用非Root容器在默认情况下Docker容器以root身份运行。以root用户身份运行的Docker容器可以完全控制主机系统。然而出于安全考虑我并不推荐这种做法。使用非root运行的Docker容器镜像可以多一层保护在生产环境中通常建议使用非root容器。但是由于这些容器由非root用户运行因此无法执行需要特殊权限的任务。如果需要利用USER指令指定非root用户(如以下示例所示)则需要进行一些上下文切换。FROM python:3.6-slim-busterLABEL maintainerTimothy Mugayi RUN apt-get update apt-get install -y --no-install-recommends wget rm -rf /var/lib/apt/lists/*# Dumb initRUN wget -O /usr/local/bin/dumb-init https://github.com/Yelp/dumb-init/releases/download/v1.2.0/dumb-init_1.2.0_amd64RUN chmod x /usr/local/bin/dumb-initRUN pip install --upgrade pipWORKDIR /usr/src/appCOPY requirements.txt .RUN pip install -r requirements.txtCOPY helloworld.py .USER 1001ENTRYPOINT [/usr/local/bin/dumb-init
http://www.huolong8.cn/news/140985/

相关文章:

  • 建设一个网站需要什么怎么才能创建网站
  • 设计素材网站有哪些免费wordpress摘要显示图片
  • 下载中国建设银行官网站品牌建设实施方案 报优评奖
  • 模板网站的建设方式与方法凡科做的网站为什么打不开
  • 商城网站源码大全做网站排版
  • 网站头部特效简述网络营销与传统营销的区别
  • 清河网站建设多少钱网页设计公司怎么赚钱
  • 网站被k是什么表现深圳光明建设局官方网站
  • 湖南建设厅网站首页培训体系搭建
  • 做网站的核验单 是下载的吗代理网址网站
  • 网站开发人员工工资html网站开发实验报告
  • 网站必须兼容哪些浏览器小程序代理商有哪些
  • 龙岗网站seo建筑设计前景怎么样
  • 网站后台查找软件单页营销网站模板
  • 网站建设网页模板什么视图适用于发送电子邮件和创建网页
  • 泉山微网站开发博州建设局网站
  • WordPress开启meme成都建站优化
  • 网站自适应开发自己做的网站怎么放到小程序
  • 动漫网站建设企业站seo报价
  • wordpress段落间距调整系统优化的方法哲学
  • 某物流网站后台源码制作公司网站教程
  • 苏州建网站提初学网页设计教程
  • wordpress收不到网站洛阳外贸网站推广
  • 网站开发代码 免责声明派遣公司做网站的好处
  • 山东网站建设哪里有网页制作中怎么添加图片
  • 福建微网站建设网站负责人 主体负责人
  • asp+php+jsp网站开发网站开发规范有哪些
  • 呼和浩特建站做网站asp和asp.net
  • 备案添加网站潍坊网站设计好处
  • 荣成信用建设网站设计公司做网站价格