修改 exit 状态的 docker 容器
2023-09-11 14:22:54 时间
Linux 系统运行基础
- boot file system ( bootfs )
- 包含 Boot Loader与Kernel文件,用户不能修改这些文件。并且在系统启动过程完成之后, 整个系统的内核都会被加载进内存。此时bootfs会被卸载, 从而释放出所占用的系统内存。
- 在容器中可以运行不同版本的Linux, 说明对于同样内核版本的不同的 Linux 发行版的 bootfs 都是一致的, 否则会无法启动。因此可以推断, Docker运行是需要内核支持的。
- Linux系统中典型的bootfs目录: (核心) /boot/vmlinuz、(核心解压缩所需 RAM Disk) /boot/initramfs
- 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
- LowerDir (只读)
只读的 image layer,其实就是 rootfs, 在使用 Dockfile 构建镜像的时候就定好了 - Upperdir (读写)
upperdir 则是在 lowerdir 之上的一层, 为读写层。容器在启动的时候会创建, 所有对容 器的修改, 都是在这层。比如容器启动写入的日志文件,或者是应用程序写入的临时文件 - MergedDir (展示)
merged 目录是容器的挂载点,在用户视角能够看到的所有文件
修改 exit 状态的 docker 容器
查看容器状态 sudo docker ps -a
,可以看到当前容器是关闭的
查看容器日志,查找关闭原因 sudo docker logs <容器名 或 容器ID>
获取容器文件存储的路径 sudo docker inspect <容器名或容器ID> | grep -A 10 GraphDriver
-A
表示在搜索到该关键词后,打印下面 n 行
mergedDir 是不存在的,我们需要修改的文件都存储在 UpperDir 目录下
相关文章
- docker容器更改重新启动容器
- Docker服务启动时报错:Job for docker.service failed because the control process exited with error
- Docker 推送镜像到hub.docker
- Docker中mysql修改配置导致无法启动的docker容器
- Docker日志
- 2022年再不掌握docker就要被淘汰了
- docker 任意端口启动jenkins (CentOs7 Docker 17.03.1-ce)
- Docker: docker-compose
- Docker服务启动报错:Job for docker.service failed because the control process exited with error code
- Docker环境搭建与使用:docker仓库管理的基础用法
- Docker中安装Gitlab-CE
- Docker 错误 docker: invalid reference format. 的解决
- 浅析Docker容器的两种运行模式及 docker run 的 --rm 参数的作用及与 docker rm 的区别
- windows10家庭版安装docker踩坑解决记录
- Docker(四):使用Docker部署tomcat、mysql、nginx静态服务器
- Docker问题——安装过程中问题Errors were encountered while processing: docker-ce
- Docker的简单介绍与安装(Windows10)
- 配置Docker中国区官方镜像http://get.daocloud.io/ 很好的一个源http://get.daocloud.io/#install-docker
- Ubuntu下Jenkins(docker)配置Docker远程启动
- Docker启动报错docker: Error response from daemon: Conflict. The container name “/redis6“ is already in u
- 我能在Docker平台上使用微软容器吗?