首页 > 其他分享 >Docker_Dockerfile5

Docker_Dockerfile5

时间:2024-05-29 13:46:52浏览次数:18  
标签:centos 文件系统 bootfs 镜像 Docker Dockerfile5 rootfs

一、Docker 镜像原理

 思考:

  • Docker 镜像本质是什么?
  • Docker 中一个centos镜像为什么只有200MB,而一个centos操作系统的iso文件要几个个G?
  • Docker 中一个tomcat镜像为什么有500MB,而一个tomcat安装包只有70多MB?

   

 操作系统组成部分:

  • 进程调度子系统
  • 进程通信子系统
  • 内存管理子系统
  • 设备管理子系统
  • 文件管理子系统
  • 网络通信子系统
  • 作业控制子系统

 Linux文件系统由bootfs和rootfs两部分组成

  • bootfs:包含bootloader(引导加载程序)和 kernel(内核)
  • rootfs: root文件系统,包含的就是典型 Linux 系统中的/dev,/proc,/bin,/etc等标准目录和文件
  • 不同的linux发行版,bootfs基本一样,而rootfs不同,如ubuntu,centos等

  

 

  • Docker镜像是由特殊的文件系统叠加而成
  • 最底端是 bootfs,并使用宿主机的bootfs
  • 第二层是 root文件系统rootfs,称为base image
  • 然后再往上可以叠加其他的镜像文件
  • 统一文件系统(Union File System)技术能够将不同的层整合成一个文件系统,为这些层提供了一个统一的视角,这样就隐藏了多层的存在,在用户的角度看来,只存在一个文件系统。
  • 一个镜像可以放在另一个镜像的上面。位于下面的镜像称为父镜像,最底部的镜像成为基础镜像。
  • 当从一个镜像启动容器时,Docker会在最顶层加载一个读写文件系统作为容器

 

 

 

 思考:

  • Docker 镜像本质是什么?

    是一个分层文件系统

  • Docker 中一个centos镜像为什么只有200MB,而一个centos操作系统的iso文件要几个个G?

    Centos的iso镜像文件包含bootfs和rootfs,而docker的centos镜像复用操作系统的bootfs,只有rootfs和其他镜像层

  • Docker 中一个tomcat镜像为什么有500MB,而一个tomcat安装包只有70多MB?

    由于docker中镜像是分层的,tomcat虽然只有70多MB,但他需要依赖于父镜像和基础镜像,所有整个对外暴露的tomcat镜像大小500多MB

二、镜像制作

 Docker 镜像如何制作?

  1. 容器转为镜像

docker commit 容器id 镜像名称:版本号
docker save -o 压缩文件名称 镜像名称:版本号
docker load –i 压缩文件名称

  2.dockerfile

 

 

 

 

 

 

二、Dockerfile概念及作用

 1、Dockerfile 概念

 

 

 

 

 

 

三、Dockerfile关键字

 

 

 

 

四、案例

 

标签:centos,文件系统,bootfs,镜像,Docker,Dockerfile5,rootfs
From: https://www.cnblogs.com/ajing2018/p/18220076

相关文章

  • docker安装jenkins+Android sdk
    1、宿主机安装Java环境参考这个链接:https://www.cnblogs.com/likecoke/p/13638419.html2、宿主机安装 AndroidSDK2.1下载zip包wgethttps://dl.google.com/android/repository/commandlinetools-linux-6858069_latest.zip2.2解压到 /home/android-sdk路径下unzip-d/hom......
  • Docker_Docker应用部署4
    一、MySQL部署案例:需求在Docker容器中部署MySQL,并通过外部mysql客户端操作MySQLServer。案例:实现步骤1.搜索mysql镜像dockersearchmysql2.拉取mysql镜像dockerpullmysql:5.63.创建容器创建容器,设置端口映射、目录映射#在/root目......
  • ubuntu 更改docker默认存储目录
    经过确认园内博客大多数是CentOS下的方式,找到一篇ubuntu下的,但是他是通过建立软连接的方式。这里放上我在官方论坛上找到的方法,参考链接1.停止docker服务sudosystemctlstopdocker2.更改daemon文件在/etc/docker下面的daemon.json,如何没有则创建sudovim/etc/docker/d......
  • centos8 安装docker
    Docker要求CentOS的内核版本,至少高于3.10,可以用命令uname-r查看;如果低于3.10的可以用yumupdate升级一下。下面开始安装:1、安装docker要求的依赖:yuminstall-yyum-utilsdevice-mapper-persistent-datalvm2Complete表示依赖安装完成。2、添加阿里云的仓库......
  • docker 容器安装软件
    前提1容器用debianbookworm建立2设置容器代理见之前随笔1:再宿主中建立sources.list文件将bookwrom的软件源放入该文件2:执行dockerps-a得到要设置的容器id3:执行dockercpsources.list容器id:/etc/apt/将软件源list放入docker容器中3:容器中执行aptupdate成功......
  • Docker部署php运行环境
    编写docker-compose.yml配置文件,使用nginx作为web服务器,转发php的请求。version:"3"services:web:image:nginx:stable-alpineports:-"8081:80"volumes:-./nginx/www:/usr/share/nginx/html-./nginx/conf.d:/etc/nginx/conf......
  • docker数据卷的作用及用法
    一、数据卷的作用解决容器与数据耦合的问题1.当我们要进入到docker容器内部修改代码时,很不方便,不便于修改。2.数据不可复用,在容器内的修改对外是不可见的,所有修改对新创建的容器是不可复用的。3.升级维护困难,数据在容器内,当我们要升级容器必然要删除旧容器,所有数据也都跟着删除了......
  • 制作Docker镜像
    目录一、Docker构建镜像的原理1、镜像分层原理2、Docker的镜像结构3、分层存储原理4、构建命令与层的关系5、最终镜像的创建二、dockercommit构建镜像1、使用场景2、手动制作yum版的nginx镜像2.1、启动一个centos容器,安装好常用的软件以及nginx2.2、关闭nginx后台运行2.3、自定......
  • DockerDesktop中启动jenkins容器时提示:Can not write to /var/jenkins_home/copy_ref
    场景Windows10(家庭版)中DockerDesktop(docker)的配置、安装、修改镜像源、使用:https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/139264096按照以上教程搭建之后想要运行jenkins容器,所以执行如下指令dockerrun-d--namejenkins-p18088:8080-v/jenkinshome:......
  • vue 项目发布到docker
    在vue项目目录下执行npmrunbuild 会生成dist文件夹,dist文件夹中的内容就是包含了打包好的静态文件 写dockerfile FROMnginx#将本地的dist文件夹复制到nginx默认的静态文件目录COPY./dist/usr/share/nginx/html执行 dockerbuild-tmy-vue-app.  ......