如何利用docker构建缓存快速迭代? 在本文中,你将学习如何使用docker 构建缓存。 Caching Docker的优势之一是它提供了缓存,可帮助你更快地迭代镜像构建。 构建映像时,Docker会逐步执行Dockerfile中的指令,按顺序执行每个指令。在检查每条指令时,Docker在其缓存中查找现有的中间镜像,它可以重复使用而不是创建新的(重复的)中间镜像。 如果缓存无效,则使其无效的指令和所有后续Dockerfile指令都会生 应用运维 2023-07-16 穿过生命散发芬芳
docker特权模式与capadd和capdrop 你可能希望在容器中执行的一些高级操作(例如Docker-in-Docker(DinD),NTP,安装环回设备等),默认情况下将需要比给予容器的root用户更高的权限。因此,需要允许其他特权才能使容器无问题地运行,因此对于该用例,Docker具有非常简单但非常宽泛的特权模式,可将完整主机的功能添加到容器中。要使用此模式,只是追加--privileged到docker run命令: Docker-in 应用运维 2023-07-16 张二河
docker多阶段构建MultiStage与Builder对比总结 此前,在早些时候,我发表过Distroless与多阶段构建,其中介绍了简单的多阶段构建方式。阅读本文,你将跟快的了解多阶段构建带来的便利以及使用方法。 本文中主要介绍多阶段构建的方式,这种方式本身就可以节省一部分空间,对于如何缩减镜像大小的几种方式类文章总结将会在此后进行编写发布,那将是后面会发生的事情。我们暂且来看多阶段构建带给我们的便利性 为什么镜像会变大? Docker就像一个版本控制系统。 应用运维 2023-07-16 穿过生命散发芬芳
了解uid和gid如何在docker容器中工作 了解用户名,组名,用户ID(uid)和组ID(gid)如何在容器内运行的进程与主机系统之间进行映射对于构建安全系统非常重要。如果没有提供任何其他选项,容器中的进程将以root身份执行(除非在Dockerfile中提供了不同的uid)。本文将解释这是如何工作的,如何正确授予权限并显示示例来说明。 逐步分析uid/gid安全性 首先,让我们回顾一下如何实现uid和gid。linux内核负责管理uid和 应用运维 2023-07-16 捡田螺的小男孩
docker不能忽视的.dockerignore用法 .dockerignore的文章或许对老司机来说是一个过时的话题,但是我已经写了很多关于dockers使用的文章,并且我在讨论群组里面发现有人对此.dockerignore并不清楚,在这种情况下,我有必要重新复述一次。查看本章节,你将了解.dockerignore的使用和注意事项。祝你愉快 Docker镜像可以和普通应用一样运行在云服务上,为什么还要优化它们呢?事实证明使用.dockerignor 应用运维 2023-07-16 宇宙之一粟
dockercompose设置静态ip和link与depends_on的区别 在容器中设置静态ip,这似乎又是一个过时的老话题,但是在讨论群中仍然有朋友为此感到困惑。我致力于解决这些小问题和在使用中容器落地的问题。为此,我又写了这篇文章来描述容器中使用静态ip,和不使用静态ip link的技巧。 在正式配置docker-compose之前,我们需要先了解link,因为在我看来在容器中使用固定ip是件没有必要的事情,使用ip只是我们脑中长久的一个使用习惯。而在docker中l 应用运维 2023-07-16 泡泡
docker容器中程序不应该以root用户身份运行 容器中的进程不应以root身份运行,或者假设它们是root用户。正确的方式是使用已知的UID和GID在Dockerfile中创建用户,并以此用户身份运行你的进程。通过限制对资源的访问,遵循此模式的映像更容易安全运行 概观 精心设计的系统遵循最小特权原则。这简单地说明应用程序应该只能访问它所需的资源以执行其所需的功能。这在设计安全系统时至关重要。无论是恶意还是由于某些错误,进程可能会在运行时产生意外 应用运维 2023-07-16 大猫
docker卷和文件系统权限 Docker容器是无状态的(不需要在运行时候做持久化数据)。一般来讲,一些有状态的,存储重要数据的应用需要一些持久存储。卷功能提供了一种支持此要求的方法,但它带有一些关于文件系统权限的问题。 在大多数部署的设置中,将使用容器编排机制,并且持久存储由某些公共云产品提供,这些产品可能具有自己的配置权限的方式。但是,在本地开发或产品的早期迭代期间,最简单的方法是将主机目录公开为docker卷。 简而言之 应用运维 2023-07-16 贤蛋大眼萌
dockerfile中的RUN指令对镜像大小的影响 我们在github上,或者在一些应用官方提供的docker镜像的Dockerfile中,经常会看到很多难以琢磨的操作,这篇文章主要说明使用Dockerfile的RUN命令为什么要在后面使用&&链接,以及在实际镜像中的影响和区别。阅读本篇文章对Dockerfile的RUN命令和层有更深的认识,同时学会更好的缩减容器的镜像。 为了更好的演示RUN命令与层带来的差异,我们分为几个步骤来做 应用运维 2023-07-16 捡田螺的小男孩
缩减docker镜像大小的5个步骤 docker容器的应用程序易于部署管理是基于docker镜像,一个优良的docker镜像是非常有必要的。 在多数情况下,我们处于无状态应用的快速部署,这个过程中,且不管你在dockerhub使用还是本地镜像仓库使用,合理的镜像的大小也是有必要的。除此之外,我们应该考虑那些? Docker镜像大小的重要性? 网络带宽导致的空闲等待 除了镜像大小外,我们还需要考虑更新迭代的问题,更大的基础镜像意味着需 应用运维 2023-07-16 剑圣无痕
docker config的配置使用 使用Docker Config而不是使用嵌入式配置创建镜像怎么样? 在镜像中嵌入配置? 我们经常看到Dockerfile如下所示,其中创建新镜像只是为了将配置添加到基本镜像。 $ cat Dockerfile FROM marksugar:redis:5.0.0 RUN curl http:/xx/x/xredis.conf -o /etc/redis/redis.conf 在上述中,是将最新的r 应用运维 2023-07-16 大猫
尽可能不在docker镜像中嵌入配置或者密码 切勿将配置或机密信息嵌入Docker镜像中。相反,在构建Docker镜像时,期望使用业务流程运行时将配置和机密的信息提供给容器,这些包含:Kubernetes Secrets,Docker Secrets。而外部工具或环境变量(对于非敏感性)用于非敏感数据。但仍需注意,不要无意中在镜像层的隐藏层中包含机密信息。 概述 容器镜像应该是可重用且安全的。当镜像层包含嵌入式配置或机密信息时,它违反了此规则 应用运维 2023-07-16 大树
Docker多阶段构建与 target和cachefrom 在这篇文章中,我描述了在无法提供任何层缓存的无服务器主机上构建时,我如何提高容器的构建性能。我使用多阶段构建和远程存储库缓存的组合来避免重复性工作来提高性能。 阅读本篇,你将了解--target的使用和--cache-from的使用,更好理解多阶段构建和缓存的利用。我将会在文章末尾放置多阶段构建使用的本站链接 note 使用--target来构建多级建立的特定阶段,并推动这些镜像传输到远程存储库。 应用运维 2023-07-16 共饮一杯
如何在 Rocky Linux 9 上使用 Nginx 安装 FossBilling FOSSBilling 是免费的开源计费,旨在为客户和卖家提供方便。FOSSBilling 是 BoxBilling 的一个分支。它通过直观的界面为客户提供卓越的体验,并支持多种支付网关。FOSSBilling 适用于多种企业,从小型到中型甚至大型企业。FOSSBilling 可以帮助您自动化开具发票、收款以及客户管理和沟通。 在本指南中,我将在 Rocky Linux 9 服务器上安装 FOSS 应用运维 2023-07-15 大猫
如何单单修改docker容器的系统时间 一般情况下,我们仅仅需要修改容器的时间与我们宿主机的实际实际一致即可, 我们知道,默认情况下docker容器是不允许访问系统时钟,但是有一款开源的软件使这样的需求变成了可能。此lib拦截用于检索当前时间和日期的所有系统调用,完成了容器内时间的修改。 阅读此篇文章,你将了解在容器内修改时间的方法。 使用 以alpine为例,我们进行编译安装,并挑选几个简单的使用方法来进行演示这个时间调整 git c 应用运维 2023-07-15 向阳逐梦
docker的安全实践 Docker可以加速部署周期,可以更快速度推出代码。但它也带来了一系列意想不到的安全隐患,你应该知道。 下面是五种常见的场景,其中部署Docker镜像会打开以前可能没有考虑过的新类型的安全问题,以及一些好的工具和建议,你可以使用它们来确保在部署时尽可能的减少安全隐患。 1.镜像的真实性 让我们从一个Docker本质上固有的问题开始:镜像真实性。如果你已经使用Docker一段时间,你将熟悉很多镜像和 应用运维 2023-07-15 大猫
docker仓库harborhttps的配置和使用 在此前的文章中有安装配置harbor,但是没有配置https,后来我发现在某一些时候,https还是挺有用的,于是就按照github上的参考,安装配置完成。 阅读此章,你将快速了解中文文档harbor的自签https的使用方式 由于Harbor未附带任何证书,因此默认情况下使用HTTP来对外提供请求。但是,强烈建议为任何生产环境启用安全性。Harbor有一个Nginx实例作为所有服务的反向代理,可 应用运维 2023-07-15 Escape
docker与gVisor沙箱 容器彻底改变了开发,打包和部署应用程序的方式。但是,暴露给容器的系统表面足够多,以至于很多安全人员并不建议使用。 越来越希望运行更多应用担任更多的角色,同时也出现不同的安全问题,这引发了对沙盒容器 - 容器的新兴趣,这些容器有助于在主机操作系统和容器内运行的应用程序之间提供安全的隔离边界。 为此,我们想介绍一种新型沙箱gVisor,它有助于为容器提供安全隔离,同时比虚拟机(VM)更轻量级。gVis 应用运维 2023-07-15 张二河
三小时快速入门docker指南 在此之前,我记录了很多章关于docker使用的基础,从安装到编写,其中还有一些常见的使用技巧,这其中还包括一些docker-compsoe的简单操作案例,其中有一些由于编写的时间太久,bug很多,但用来学习绰绰有余,但也仅供参考。 现在,我将所有的文章汇聚在一个页面中方便查看。 假如你是一个docker新手,没有太多时间,你不妨从本章入手学习,假如你想详细了解docker,那我推荐你查看我记录的白 应用运维 2023-07-15 法医
dockercompose2和3的常用参数和资源限制 通常我们在编排一个容器的时候,最简单的方式就是使用docker-compose,compose是简单的将docker run的命令进行组织起来。而在docker早期的产品里面compose被收购后是很重要的一个环节。 当我们run一个容器的时候,一般而言,我们关注她的网络,持久化,资源情况以rabbitmq为例,如下: 2.4 version: '2.4' services: rabbitmq: 应用运维 2023-07-15 大树