
Docker UnionFS
文章平均质量分 86
ddd
富士康质检员张全蛋
人生实难,唯有自渡。只有接受了真实现的现状和真实的自己,调整好心态,才能脚踏实地的活着,然后去发现角落处的那些惊喜和美好,去相信一切苦难困境都会过去!“即使身处阴沟,也要记得仰望星空”。
展开
-
8个步骤彻底清理Docker镜像
镜像积累如山,不仅占用宝贵的磁盘空间,还可能给我们的工作带来不便。今天,就让我带大家深入了解如何高效清理 Docker 镜像,保持我们的开发环境干净整洁。通过上面的分享,相信大家已经对如何清理 Docker 镜像有了更加全面和深入的认识。检查一下这些镜像,评估哪些是必要的,哪些是可以删除的。如果有一系列复杂的清理规则,我们可以编写一个简单的脚本来自动化这个过程。上面的命令会删除所有创建时间超过168小时(7天)的镜像。这样我们可以直观地看到哪些镜像占用空间较大,然后手动删除。那么,今天的内容就到这里。原创 2024-07-17 17:59:13 · 5161 阅读 · 0 评论 -
Docker 镜像 用普通用户启动服务
通过以普通用户身份启动Docker镜像中的服务,我们可以有效降低潜在的安全风险,并提高容器的可移植性和可重用性。在Dockerfile中创建一个普通用户,并使用USER命令切换到该用户,然后使用CMD命令定义容器启动时要运行的命令。最后,通过构建和运行容器来启动服务。这些步骤可以帮助我们以更安全和可靠的方式在Docker中运行服务。原创 2024-04-12 10:58:20 · 1474 阅读 · 1 评论 -
Dockerfile CMD、ENTRYPOINT 区别
命令如果指定了参数会把CMD里的参数覆盖: (这里说明一下,如:docker run -it ubuntu /bin/bash 命令的参数是指/bin/bash 而非 -it ,然后你可以在docker run里指定参数,这样CMD里的参数(这里是-c)就会被覆盖掉而ENTRYPOINT里的不被覆盖。现在你应该明白进入点的意思了吧。ENTRYPOINT 设置的命令一般是容器镜像所要执行的主要命令,CMD 则是选项和参数。它设置的值可以被 Dockerfile 中的后续指令覆盖,包括在运行容器时传递的参数。原创 2024-04-12 09:35:31 · 2832 阅读 · 0 评论 -
DockerHub 镜像仓库原理
其实就是由dockerfile构建出来的描述文件,这个描述文件会说这个容器镜像有多少层,每一层里面有什么内容,它的checksum这些信息都会记录下来,还有最终的可执行文件在哪就是在存储数据里面,就是在一个一个的blob里面,真正占有空间的就是这些blob。容器镜像本身也支持了oci的规范,它分为image规范,容器运行时规范,后面又加了分发的规则,分发规范就是去定义了去实现一个容器镜像仓库,只要我实现了这些API,那我就可以和你这种runtime去做互动了,那么我就实现了一个镜像仓库。原创 2022-09-02 10:41:45 · 2074 阅读 · 0 评论 -
Docker 镜像管理
如果不可避免的要在容器镜像里面,打包多个容器进程这样就需要选择适当的init进程了,做的不够好就会出现很多问题。第一个最常见的问题就是kubernetes要去优雅的终止一个进程的时候,它会发一个sigterm终止信号,让这个容器进程优雅退出,但是如果你做的不好,比如容器里面有一个初始化进程,它用来拉起主进程的,初始化进程把kubernetes的sigterm信号吃掉了,不往下传,那么就让这个应用缺少了优雅终止的可能性。到最后就暴力的被kill掉,可能引起业务故障。如果容器镜像里面不可避免的的要用多个进程,可原创 2022-06-21 15:25:04 · 346 阅读 · 0 评论 -
Dockerfile 构建镜像最佳实践
你可以通过dockerfile去定义你的容器镜像,包括它的中间件,包括哪些可运行的文件。你可以将一个应用里面所需要的所有依赖,都在dockerfile里面去定义好,docker 本身支持docker build的命令,它会依次去读取Dockerfile里面的这些指令,将这些指令转化为正真的容器镜像。 运行环境中,应用程序通常是以一个和多个进程运行的。(很方便的横向扩展,一个进程跑在这,当你量大了,扛不住了,我再启动一个进程,同时进程出现问题可以随意替换它,无共享,无状态,这样就可以以底层本的方式来管理大量进原创 2022-06-21 13:59:03 · 784 阅读 · 0 评论 -
Docker 文件系统 UnionFS
namespace cgroup是Linux内核的技术,docker的创举是overylayfs用来管理容器镜像。namespace和cgroup都不是新技术,都利用了Linux现有的已经相对成熟的容器化技术,它都不是docker的创举,docker的创举是overylayfs,它开创性的提出了基于分层的文件系统来管理整个容器镜像。容器使用了union fs文件系统可以将多个目录,mount成为一个目录(虚拟目录里面)。原创 2022-03-04 16:33:05 · 2017 阅读 · 0 评论 -
在 Linux 中使用 Fio 来测评硬盘性能
[root@docker ~]# mkdir -p /rongliang[root@docker ~]# lsblkNAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTvdb 253:16 0 1G 0 disk [SWAP]vdc 253:32 0 20G 0 disk vda 253:0 0 50G 0 disk ?..vda1 253:1 0 50G 0 part /[root@docker ...原创 2021-12-08 17:24:43 · 3606 阅读 · 0 评论 -
容器磁盘限速:我的容器里磁盘读写为什么不稳定?
上一讲,我给你讲了如何通过 XFS Quota 来限制容器文件系统的大小,这是静态容量大小的一个限制。你也许会马上想到,磁盘除了容量的划分,还有一个读写性能的问题。具体来说,就是如果多个容器同时读写节点上的同一块磁盘,那么它们的磁盘读写相互之间影响吗?如果容器之间读写磁盘相互影响,我们有什么办法解决呢?接下来,我们就带着问题一起学习今天的内容。场景再现我们先用这里的代码,运行一下 make image 来做一个带 fio 的容器镜像,fio 在我们之前的课程里提到过,它是用来测试磁盘转载 2021-11-26 17:37:26 · 1901 阅读 · 1 评论 -
容器文件系统:我在容器中读写文件怎么变慢了?
这一模块我们所讲的内容,都和容器里的文件读写密切相关。因为所有的容器的运行都需要一个容器文件系统,那么我们就从容器文件系统先开始讲起。那我们还是和以前一样,先来看看我之前碰到了什么问题。这个问题具体是我们在宿主机上,把 Linux 从 ubuntu18.04 升级到 ubuntu20.04 之后发现的。在我们做了宿主机的升级后,启动了一个容器,在容器里用 fio 这个磁盘性能测试工具,想看一下容器里文件的读写性能。结果我们很惊讶地发现,在 ubuntu 20.04 宿主机上的容器中文件读写的性能转载 2021-11-04 19:23:34 · 2046 阅读 · 0 评论 -
Dockerfile JAVA微服务镜像 构建Jar
跑java微服务只需要有JDK的环境就行了,直接执行java -jar就行了,就直接可以将java跑起来了这个是将微服务的jar包直接打进去(只需要有个jdk环境就行)java:8-jdk-alpine还需要测试,因为环境库可能和centos不一样[root@localhost java]# cat Dockerfile FROM java:8-jdk-alpineLABEL maintainer www.jar.comENV JAVA_OPTS="$JAVA_OPTS -Dfile.e原创 2020-11-10 17:20:54 · 2323 阅读 · 1 评论 -
Docker 数据卷持久化数据
在生产环境中使用Docker,往往需要对数据进行持久化,或者需要在多个容器之间进行数据共享,这必然涉及容器的数据管理操作。容器中的管理数据主要有两种方式∶数据卷(Data Volumes)∶容器内数据直接映射到本地主机环境(对数据进行持久化)数据卷容器(Data Volume Containers)∶使用特定容器维护数据卷(多个容器之间的数据共享)原创 2020-07-29 16:56:07 · 2832 阅读 · 1 评论 -
Docker Dockerfile 常用指令详解
关于Dockerfile在Docker中创建镜像最常用的方式,就是使用Dockerfile。Dockerfile是一个Docker镜像的描述文件,我们可以理解成火箭发射的A、B、C、D…的步骤。Dockerfile其内部包含了一条条的指令,每一条指令构建一层,因此每一条指令的内容,就是描述该层应当如何构建。一个Dockerfile的示例如下所示:#基于centos镜像FROM centos#维护人的信息MAINTAINER The CentOS Project#安装...原创 2020-07-27 16:49:55 · 567 阅读 · 1 评论 -
Docker Overlay2 存储驱动
docker支持多种graphDriver,包括vfs、devicemapper、overlay、overlay2、aufs等等,其中最常用的就是aufs了,但随着linux内核3.18把overlay纳入其中,overlay的地位变得更重。原创 2020-07-17 15:51:12 · 4878 阅读 · 1 评论 -
Docker 镜像以及镜像分层详解
镜像的分层结构Docker 支持通过扩展现有镜像,创建新的镜像。实际上,Docker Hub 中 99% 的镜像都是通过在 base 镜像中安装和配置需要的软件构建出来的。比如我们现在构建一个新的镜像,Dockerfile 如下:① 新镜像不再是从 scratch 开始,而是直接在 Debian base 镜像上构建。② 安装 emacs 编辑器。③ 安装 apache2。④ 容器启动时运行 bash。构建过程如下图所示:可以看到,新镜像是从 base 镜像一层一层叠加生成的。原创 2020-07-08 17:59:58 · 10629 阅读 · 5 评论