Dockerfile

本文介绍了Docker镜像的基础原理,包括其构成(操作系统组成部分、Linux文件系统和UnionFS技术),展示了如何通过Dockerfile创建镜像,以及如何自定义CentOS7镜像,满足特定需求。内容涵盖了容器转为镜像的方法和实验案例实操步骤。
摘要由CSDN通过智能技术生成

目录

docker镜像原理

镜像制作

实验案例

需求:

实现方法:

实操:


docker镜像原理

1、操作系统组成部分:

进程调度子系统

进程通信子系统

内存管理子系统

设备管理子系统

文件管理子系统

网络通信子系统

作业控制子系统

2、Linux文件管理系统:

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

bootfs: 包含bootloader (引导加载程序)和kernel (内核)

rootfs: root文件系统,包含的就是典型Linux 系统中的/dev,/proc,/bin,/etc等标准目录和文件

不同的linux发行版,bootfs基本一样,而rootfs不同,如ubuntu、centos等

3、原理:

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

镜像制作

1、容器转为镜像

转成镜像:docker commit 容器id 镜像名称:版本号(镜像文件时无法传输的)

转成压缩文件:docker save -o 压缩文件名称 镜像名称:版本号

压缩文件解压缩:docker load -i 压缩文件名称

注:上述方式进行镜像传输时,从挂载的数据卷内同步到镜像中的数据会丢失。

2、dockerfile概念

  • Dockerfile是一个文本文件包含了一条条的指令
  • 每一条指令构建一层,基于基础镜像,最终构建出一个新的镜像
  • 对于开发人员——可以为开发团队提供一个完全一致的开发环境
  • 对于测试人员——可以直接拿开发时所构建的镜像或者通过Dockerfile文件构建一个新的镜像开始工作了
  • 对于运维人员——在部署时,可以实现应用的无缝移植

3、关键字

实验案例

 

需求:

自定义centos7镜像:

1.默认登录路径为/usr

2.可以使用vim

实现方法:

1、定义父镜像: FROM centos:7

2、定义作者信息:MAINTAINER a

3、执行安装vim命令: RUN yuminstall-y vim

4、定义默认的工作目录:WORKDIR/usr

5、定义容器启动执行的命令: CMD/bin/bash

实操:

1、创建dockerfile文件

2、根据需求编写dockerfile文件

3、构造镜像文件

  • 19
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值