我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Docker容器中应避免哪些事

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

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Docker容器中应避免哪些事

今天就跟大家聊聊有关Docker容器中应避免哪些事,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

毋庸置疑,容器已经成为企业IT基础设施中必不可少的部分,它具有许多的优点,但容器是一次性的。那么该如何保持容器的良好效益呢?以下将介绍Docker容器中应避免的10件事。

毋庸置疑,容器已经成为企业IT基础设施中必不可少的部分,它具有许多的优点,比如:

  • 容器是不可变的——操作系统,库版本,配置,文件夹和应用程序都包装在容器内。你保证在质量检查中测试过的同一镜像将以相同的行为到达生产环境。

  • 容器很轻——容器的内存占用量很小。容器将只为主要进程分配内存,而不是数百或数千MB。

  • 容器非常快——可以像启动典型Linux进程一样快地启动容器。你可以在几秒钟内启动一个新容器,而不是几分钟。

  • 但是,许多用户仍然像对待典型虚拟机一样对待容器,而忘记了容器具有重要的特征:即容器是一次性的。

    这种特征迫使用户改变他们对如何处理和管理容器的看法。那么该如何保持容器的最佳效益呢?以下将介绍Docker容器中应避免的10件事。

    不要将数据存储在容器中,因为你可以停止,销毁或更换容器。在容器中运行的应用程序版本1.0应该容易地由版本1.1替换,而不会造成任何影响或数据丢失。因此,如果需要存储数据,请批量存储。在这种情况下,还应该注意两个容器是否在同一卷上写入数据,因为这可能会导致损坏。确保你的应用程序是为了写入共享数据存储。

    不要将应用程序分为两部分进行交付。有些人看到像虚拟机这样的容器,大多数人倾向于认为他们应该将应用程序部署到现有的运行容器中。在开发阶段,你需要不断进行部署和调试,这是正确的。但对于一个连续传递(CD)管道QA和Production,你的应用程序应该是镜像的一部分。

    不要创建大镜像,因为大镜像将很难分发。确保仅具有运行应用程序/进程所需的文件和库。不要安装不必要的软件包或运行将许多文件下载到新镜像层的“更新” 。

    不要使用单层镜像,为了有效利用分层文件系统,请始终为操作系统创建自己的基础镜像层,为用户名定义创建另一层,为运行时安装创建另一层,为配置创建另一层,最后是应用程序的另一层。重新创建,管理和分发镜像将更加容易。

    不要从正在运行的容器中创建镜像。换句话说,不要使用“ docker commit”来创建镜像。这种创建镜像的方法不可复制,应完全避免。始终使用完全可复制的Dockerfile或任何其他S2I(从源到镜像)方法,如果将Dockerfile存储在源代码控制存储库(git)中,则可以跟踪对Dockerfile的更改。

    不要只使用“最新”标签,对于Maven用户,最新标签就像“ SNAPSHOT”一样。由于容器的分层文件系统性质,因此鼓励使用标签。几个月后生成镜像并发现你的应用程序无法运行是因为父层(Dockerfile中的FROM)被不兼容向后的新版本或错误的新版本所取代,你不会感到惊讶从构建缓存中检索了“最新”版本。在生产环境中部署容器时,也应避免使用“最新”标签,因为你无法跟踪正在运行哪个版本的镜像。

    不要在单个容器中运行多个进程。容器非常适合运行单个进程(http守护程序,应用程序服务器,数据库),但是如果有多个进程,则管理起来可能会遇到更多麻烦,检索日志,并分别更新流程。

    不要将凭据存储在镜像中。使用环境变量,你不想对镜像中的任何用户名/密码进行硬编码。使用环境变量从容器外部检索该信息。这个原理的一个很好的例子是Postgres镜像。

    不要以root用户身份运行进程。“默认情况下,docker容器以root用户身份运行。随着docker的成熟,可能会提供更多安全的默认选项。目前,要求root用户对其他人是危险的,可能并非在所有环境中都可用。你的镜像应使用USER指令为运行容器指定一个非root用户。

    不要依赖IP地址。每个容器都有自己的内部IP地址,如果你启动和停止容器,它可能会更改。如果应用程序或微服务需要与另一个容器通信,请使用环境变量将正确的主机名和端口从一个容器传递到另一个容器。

看完上述内容,你们对Docker容器中应避免哪些事有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注编程网行业资讯频道,感谢大家的支持。

免责声明:

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

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

Docker容器中应避免哪些事

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Docker容器中应避免哪些事

今天就跟大家聊聊有关Docker容器中应避免哪些事,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。毋庸置疑,容器已经成为企业IT基础设施中必不可少的部分,它具有许多的优点,但容器是一次
2023-06-05

golang 函数命名中应避免哪些错误?

go 函数命名错误及应对策略:避免空洞名称,使用描述性名称。避免冗长名称,使用缩略语或简洁术语。使用小写字母命名函数,保持一致性。避免使用下划线,保持代码清晰。确保名称与功能一致,准确反映函数功能。Go 函数命名中的常见错误及应对策略在
golang 函数命名中应避免哪些错误?
2024-04-22

docker中容器命令有哪些

这篇文章主要介绍docker中容器命令有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! 下面我们以下载一个centos镜像来做演示。[root@t-docker chenzx]# docker images
2023-06-04

Golang开发中应该避免的错误有哪些

这篇文章主要介绍了Golang开发中应该避免的错误有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Golang开发中应该避免的错误有哪些文章都会有所收获,下面我们一起来看看吧。Go是一种静态类型的、并发的、
2023-07-05

PHP 函数命名中应该避免哪些常见陷阱?

针对 php 函数命名陷阱,建议遵循以下准则:使用描述性名称;确保参数顺序一致;避免使用静态变量命名;谨慎使用缩写;区分大小写。PHP 函数命名:避开常见陷阱在 PHP 函数命名中,遵循约定至关重要,以确保代码的可读性和可维护性。以下是一
PHP 函数命名中应该避免哪些常见陷阱?
2024-04-21

docker中JFrog容器镜像仓库功能有哪些

这篇文章主要为大家展示了“docker中JFrog容器镜像仓库功能有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“docker中JFrog容器镜像仓库功能有哪些”这篇文章吧。一. JFro
2023-06-04

软考系统架构设计师考试中哪些错误容易导致失分?如何避免?

软考系统架构设计师考试是一个综合性很强的考试,不仅考查考生的基础理论知识,还考查实际应用能力。在考试过程中,有一些常见的错误会导致失分,了解这些错误并采取相应的预防措施对于顺利通过考试至关重要。具体请见下文。
软考系统架构设计师考试中哪些错误容易导致失分?如何避免?
2024-09-11

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录