修改 exit 状态的 docker 容器

举报
福州司马懿 发表于 2021/11/19 00:53:37 2021/11/19
【摘要】 Linux 系统运行基础 boot file system ( bootfs ) 包含 Boot Loader与Kernel文件,用户不能修改这些文件。并且在系统启动过程完成之后, 整个系统的内核都会...

Linux 系统运行基础

  1. boot file system ( bootfs )
  • 包含 Boot Loader与Kernel文件,用户不能修改这些文件。并且在系统启动过程完成之后, 整个系统的内核都会被加载进内存。此时bootfs会被卸载, 从而释放出所占用的系统内存。
  • 在容器中可以运行不同版本的Linux, 说明对于同样内核版本的不同的 Linux 发行版的 bootfs 都是一致的, 否则会无法启动。因此可以推断, Docker运行是需要内核支持的。
  • Linux系统中典型的bootfs目录: (核心) /boot/vmlinuz、(核心解压缩所需 RAM Disk) /boot/initramfs
  1. root file system ( rootfs )
  • 不同的Linux发行版本, bootfs相同, rootfs不同(二进制文件)。
  • 每个容器有自己的 rootfs, 它来自不同的 Linux 发行版的基础镜像,包括 Ubuntu, Debian 和 SUSE 等。
  • 使用不同的rootfs 就决定了, 在构建镜像的过程中, 可以使用哪些系统的命令。 4) 典型的rootfs 目录: /dev、/proc、/bin、/etc、 /lib、/usr

OverlayFS 存储原理

OverlayFS 结构分为三个层: LowerDir、Upperdir、MergedDir

  1. LowerDir (只读)
    只读的 image layer,其实就是 rootfs, 在使用 Dockfile 构建镜像的时候就定好了
  2. Upperdir (读写)
    upperdir 则是在 lowerdir 之上的一层, 为读写层。容器在启动的时候会创建, 所有对容 器的修改, 都是在这层。比如容器启动写入的日志文件,或者是应用程序写入的临时文件
  3. MergedDir (展示)
    merged 目录是容器的挂载点,在用户视角能够看到的所有文件

修改 exit 状态的 docker 容器

查看容器状态 sudo docker ps -a,可以看到当前容器是关闭的
在这里插入图片描述查看容器日志,查找关闭原因 sudo docker logs <容器名 或 容器ID>
在这里插入图片描述获取容器文件存储的路径 sudo docker inspect <容器名或容器ID> | grep -A 10 GraphDriver
-A 表示在搜索到该关键词后,打印下面 n 行

在这里插入图片描述mergedDir 是不存在的,我们需要修改的文件都存储在 UpperDir 目录下
在这里插入图片描述

文章来源: blog.csdn.net,作者:福州-司马懿,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/chy555chy/article/details/114085504

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。