Dockerfile镜像详解——(五)


Dockerfile官方文档: https://docs.docker.com/engine/reference/builder/

一、Docker镜像原理

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

    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镜像制作

  • 1、方式一:容器转为镜像

    #docker commit 容器id 镜像名称:版本号
    docker commit 6e2f950a2911  mysqlImage:1.0
    #docker save -o 压缩文件名称 镜像名称:版本号
    docker save -o mysqlImage.tar mysqlImage:1.0
    #docker load -i 压缩文件名称
    docker load -i mysqlImage.tar
    # 注意:容器本身挂载的目录不会生效,需要单独执行挂载目录命令
    
  • 2、方式二:dockerfile
    Dockerfile是一个文本文件
    包含了一条条的指令
    每一条指令构建一层,基于基础镜像,最终构建出一个新的镜像
    对于开发人员:可以为开发团队提供一个完全一致的开发环境
    对于测试人员:可以直接拿开发时所构建的镜像或者通过Dockerfile文件构建一个新的镜像
    对于运维人员:在部署时,可以实现应用的无缝移植

Dockerfile指令查看:https://hub.docker.com

三、Dockerfile实战案例

  1. 创建Dockerfile文件,内容如下
    #Spring boot jar包部署实现步骤:
    # 1、定义父镜像:FROM java:8
    # 2、定义作者信息:MAINTAINER rat
    # 3、将jar包添加到容器:ADD jar包名称 新名称
    # 4、定义容器启动执行的命令:CMD java -jar jar包新名称
    # 5、通过dockerfile构建镜像:docker bulid -f dockerfile 文件路径 -t 镜像名称:版本
    #----------------------------------文件内容开始----------------------------------
    FROM java:8
    MAINTAINER rat
    ADD springboot.jar springboot.jar
    CMD java -jar springboot.jar
    #----------------------------------文件内容结束----------------------------------
    
  2. 构建镜像、启动镜像
    #最后执行dockerfile构建镜像命令
    docker bulid -f dockerfile /home/docker_file/springboot -t springboot:1.0
    # 释:可以使用docker images查看
    #	docker run -id -p 8080:8080 springboot 启动等
    
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一只大耗子。

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值