Docker(一)搭建Docker,镜像的导入和容器的基本操作

基本概念

  • 镜像的概念
    Docker 镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。镜像不包含任何动态数据,其内容在构建之后也不会被改变。

  • 镜像的分层存储结构
    Docker 设计时,就充分利用 Union FS 的技术,将镜像设计为分层存储的架构。镜像只是一个虚拟的概念,其实际体现并非由一个文件组成,而是由一组文件系统组成,或者说,由多层文件系统联合组成。

  • 镜像构建时,会一层层构建,前一层是后一层的基础。每一层构建完就不会再发生改变,后一层上的任何改变只发生在自己这一层。比如,删除前一层文件的操作,实际不是真的删除前一层的文件,而是仅在当前层标记为该文件已删除。在最终容器运行的时候,虽然不会看到这个文件,但是实际上该文件会一直跟随镜像。因此,在构建镜像的时候,需要额外小心,每一层尽量只包含该层需要添加的东西,任何额外的东西应该在该层构建结束前清理掉。分层存储的特征还使得镜像的复用、定制变的更为容易。甚至可以用之前构建好的镜像作为基础层,然后进一步添加新的层,以定制自己所需的内容,构建新的镜像。下图可以和明显的看到镜像的分层结构
    在这里插入图片描述

  • 分层结构的特点
    <1>共享宿主机的kernel
    <2>base镜像提供的是最小的Linux发行版
    <3>同一docker主机支持运行多种Linux发行版
    <4>采用分层结构的最大好处是:共享资源
    <5>Copy-on-Write 可写容器层
    <6>容器层以下所有镜像层都是只读的
    <7>docker从上往下依次查找文件
    <8>容器层保存镜像变化的部分,并不 会对镜像本身进行任何修改 l
    <9>一个镜像最多127层
    在这里插入图片描述

  • 在传统的Linux操作系统内核启动时,首先挂载一个只读的rootfs,当系统检测其完整性后,将其切换成读写(read-write)模式。

  • docker 沿用了传统操作系统的rootfs的挂载方式,在docker daemon启动之后,rootfs处于docker文件系统的最顶层,并且只是只读模式;挂载完毕后利用联合挂载技术在已有的rootfs文件系统上再挂载一个读写层,这样对于用户来说可读可写的文件系统就可以完全展示出来。

  • docker镜像系统的分布:
    namespace
    读写层
    初始化层
    只读层

  • 镜像的构建

  • docker commit 构建新镜像三部曲
    (1)运行容器 ——docker run -it --name test busybox
    (2)修改容器 —— echo helloworld > testfile
    (3)将容器保存为新的镜像——docker commit test test:v1

  • 缺点:
    效率低、可重复性弱、容易出错
    使用者无法对镜像进行审计,存在安全隐患

一、搭建简单的2048游戏

1.安装docker

[root@server1 docker]# ls
[root@server1 docker]# yum install -y *
[root@server1 docker]# yum install -y bash-*
[root@server1 docker]# systemctl start docker

在这里插入图片描述

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值