docker架构,镜像及容器(代码片段)

author author     2022-12-22     683

关键词:

Docker的核心概念

  • 镜像

Docker的镜像是创建容器的基础,类似虚拟机的快照,可以理解为是一个面向
Docker容器引擎的只读模板,比如:一个镜像可以是一个完整的Centos操作系统环境,
称为一个Centos镜像;可以是一个安装了 MYSOL的应用程序,称之为一个MySQL
镜像等等.
Docker提供了简单的机制来创建和更新现有的镜像,用户也可以从网上下载已经
做好的应用镜像来直接使用.

  • 容器

Docker的容器是从镜像创建的运行实例,它可以被启动,停止和别除。所创建的
每一个容器都是相互隔离,互不可见的,可以保证平台的安全性,还可以把容器看作
是一个简易版的Linux环境, Docker利用容器来运行和隔离应用。

  • 仓库

Docker仓库是用来集中保存镜像的地方,当创建了自己的镜像之后,可以使用
push命令将它上传到公共仓库( Public)或者私有仓库( Private),这样一来当下次要
在另一台机器上使用这个镜像的时候,只需要从仓库上pull下来就可以了。
仓库注册服务册服务器( Registry)是存放仓库的地方,其中包含了多个仓库,每个仓库
集中存放某一类镜像,并且使用不同的标签(tag)来区分它们,目前最大的公共仓库
是 Docker Hub,其中存放了数量庞大的镜像供用户下载使用。

Docker镜像

仓库配置

# vim /etc/yum.repos.d/docker.repo
[docker]
name=Docker Repository
baseurl=https://yum.dockerproject.org/repo/main/centos/7/
enabled=1
gpgcheck=1
gpgkey=https://yum.dockerproject.org/gpg

技术分享图片

安装Docker

# yum install docker-engine -y   //直接安装
# systemctl start docker.service   //启动服务
# systemctl enable docker.service  //实现开机自启动
# docker version  查看版本信息

技术分享图片

Docker镜像操作

Docker运行容器前需要本地存在对应的镜像,如果不存在本地镜像 Docker就会
试默认镜像仓库htps://hub.docker. com下载,这是由 Docker官方维护的一个公共仓库,可以满足用户的绝大部分需求。用户也可以通过配置来使用自定义的镜像仓库。

搜索镜像

  • 命令格式:docker search 关键字
    # docker search cobbler  
    //搜索cobbler镜像

    技术分享图片

    获取镜像

  • 命令格式:docker pull 仓库名称[:标签]

对于docker来说,如果下载镜像时不指定标签,则默认会下载仓库中最新版,因此也可通过制定标签来下载指定版本,这里的标签(tag)就是用来区分镜像版本的。

# docker pull jasonlix/docker-cobbler   //下载cobbler镜像

技术分享图片

查看镜像信息

# docker images //查看所有镜像信息

技术分享图片

REPOSITORY一镜像属于的仓库。
TAG一镜像的标签信息,标记同一个仓库中的不同镜像。
IMAGE ID一镜像的唯一ID号,唯一标识了该镜像。
CREATED一镜像创建时间。
VIRTUAL SIZE一镜像大小。

查看单独镜像详细信息

# docker inspect 2211e1f06c4e

技术分享图片

定义标签

  • 命令格式:docker tag 镜像名称:[标签] 新名称:[新标签]
    # docker tag jasonlix/docker-cobbler cobbler:cobbler1   //为jasonlix/docker-cobbler定义一个新标签

    技术分享图片

    删除镜像

  • 方法一:docker rmi 仓库名称:标签
  • 方法二:docker rmi 镜像ID号
    # docker rmi cobbler:cobbler1  

    技术分享图片

    存出镜像 载入镜像

  • 存出镜像:当需要把一台机器上的镜像迁移到另一台机器上的时候,需要将镜像保存成本地文件,这一过程叫做存出镜像。

  • 载入镜像:从别的机器拷贝镜像,将该镜像导入到自己的镜像库中,这一过程叫做载入镜像

  • 命令格式:docker save -o 存储文件名 存储的镜像
    # docker save -o cobbler jasonlix/docker-cobbler

    技术分享图片

  • 命令格式:docker load < 存出的镜像文件
    或者:
    docker --input 存出的镜像文件

    上传镜像

  • 本地存储的镜像文件越来越多,就要一个专门的地方存放这些镜像---仓库。目前比较方便的就是公共仓库,默认上传的是Docker hub官方仓库,需要注册账号完成登录后才能上传
  • 命令格式:docker push 仓库名称:标签
    # docker tag jasonlix/docker-cobbler cobbler:cobbler2  //再定义一个标签
    # docker login   //输入用户名,密码和邮箱来完成登陆和注册
    # docker push cobbler:cobbler2  //上传镜像

    Docker容器

    容器的创建与启动

  • 容器的创建就是将镜像加到容器的过程,Docker的容器十分轻量级,用户可以
    随时创建或者删除。新创建的容器默认处于停止状态,不运行任何程序,需要在其中
    发起一个进程来启动容器,这个进程是该容器的唯一进程,所以当该进程结术的时候
    容器也会完全停止。停止的容器可以重新启动并保留原来的修改。使用 docker create
    命令可以新建一个容器。
  • 命令格式:docker create[选项]镜像 运行的程序
    # docker create -it jasonlix/docker-cobbler /bin/bash
    # docker ps -a     //查看容器中所有进程

    技术分享图片

  • 命令格式:docker start 容器ID/名称
    # docker start ID    //启动容器

    技术分享图片

  • 命令格式:docker run
    # docker run jasonlix/docker-cobbler /usr/bin/bash -c ls /      //查看镜像根目录

    技术分享图片

    # docker run -d jasonlix/docker-cobbler /usr/bin/bash -c "while true;do echo htllo;done"  一直保持后台启动

    技术分享图片

    容器的终止

  • 命令格式:docker stop 容器ID/名称
    # # docker stop ID    //停止容器

    技术分享图片

    容器的进入

  • 命令格式:docker exec -it 容器ID/名称 /bin/bash
    -i 表示让容器的输入保持打开
    -t 表示让docker分配一个伪终端
    # docker exec -it cb04f2231511 /bin/bash

    技术分享图片

    容器的导出与导入

    容器的导出
  • 命令格式:docker export 容器ID/名称 > 文件名
    # docker export cb04f2231511 > cobbler1    //导出容器到文件cobbler1
    容器的导入
  • 命令格式:cat 文件名 | docker import - 生成的镜像名称:标签

容器的删除

  • 可以使用docker rm 命令将一个已经处于终止状态的容器删除
  • 命令格式:docker rm 容器ID/名称
    # docker stop cb04f2231511  //先停止容器再删除
    # docker rm cb04f2231511

    技术分享图片

    Docker资源控制

    限制cpu使用速率

    在docker中可以通过--cpu-quota选项来限制cpu使用率,cpu的百分比是以1000为单位的

  • 格式:docker run --cpu-quota 20000 容器名 //cpu的使用率限定为20%
    # docker run --cpu-quota 20000 cb04f2231511 

    多任务按比例分析CPU

    当有多个容器任务运行时,很难计算cpu的使用率,为了使容器合理使用cpu资源,可以通过--cpu-share选项设置cpu按比例共享资源,这种方式还可以实现cpu使用率的动态调整。

    # docker run --cpu-shares 1024 容器A
    # docker run --cpu-shares 1024 容器B
    # docker run --cpu-shares 2048 容器C

    限制cpu内核使用

    如果服务器有16个核心,那么cpu编号为0~15,使容器绑定第1~4个内核使用。

    # docker run --cpuset-cpus 0,1,2,3 容器名

    对blkio的限制

    如果是在一台服务器上进行容器的混合部署,那么会出现同时有几个程序写磁盘数据的情况,这时可以--device-write-iops选项来限制写入的iops,相应的还有--device-read-bps选项可以限制读取的iops,但是这种方法只能针对blkio限制的是设备(device),而不是分区,相应的配置文件/sys/fs/cgroup/blkio/docker/容器ID/blkioo.throttle.write_iops_device。

    # docker run --device-write-bps /dev/sda1:1mb 容器名 //限制容器的/dev/sda1的写入ipos为1MB

详解docker架构镜像容器及资源限制(代码片段)

Docker概述Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。?Docker核... 查看详情

docker架构镜像及容器的安装和基本操作(代码片段)

Docker概念Docker是在Linux容器里运行应用的开源工具,是一种轻量级的虚拟机。Docker的宗旨:Build,ShipandRunAnyAPP,Anywhere,即通过对应用组件的分装、发布、部署、运行等生命周期的管理,达到应用组件级别的“一次分装,到处运行”... 查看详情

云原生第二篇--容器管理工具docker生态架构及部署(代码片段)

容器管理工具Docker生态架构及部署一、Docker生态架构1.1DockerContainersAreEverywhere1.2生态架构1.2.1DockerHost1.2.2Dockerdaemon1.2.3Registry1.2.4Dockerclient1.2.5Image1.2.6Container1.2.7DockerDashboard1.3Docker版本二、Docker部署2.1使用YUM源部署2.1.1获取阿里云开... 查看详情

docker基本管理(容器及镜像操作)(代码片段)

Docker基本管理(容器及镜像操作)一、Docker概述设计宗旨优点容器在内核中支持2种重要技术二、Docker与虚拟机的区别三、Docker的核心概念镜像容器仓库总结四、安装Docker五、Docker镜像操作1.搜索镜像2.获取镜像3.镜像加速... 查看详情

docker基本管理(容器及镜像操作)(代码片段)

Docker基本管理(容器及镜像操作)一、Docker概述设计宗旨优点容器在内核中支持2种重要技术二、Docker与虚拟机的区别三、Docker的核心概念镜像容器仓库总结四、安装Docker五、Docker镜像操作1.搜索镜像2.获取镜像3.镜像加速... 查看详情

docker及docker-compose的使用(代码片段)

Docker是一个开源的容器引擎,它有助于更快地交付应用。方便快捷已经是Docker的最大优势,过去需要用数天乃至数周的任务,在Docker容器的处理下,只需要数秒就能完成。架构 Docker架构图Dockerdaemon(Docker守护进程):Dockerdae... 查看详情

docker架构及工作流程(代码片段)

一、概念docker是开源容器引擎,基于cgroup,namespace,unionFS等技术实现,对应用进行封装的虚拟化技术什么是cgroup?对系统资源限制,创建容器的过程其实就是在创建进程,对资源的分配和维护使用cgroup来管理,包括cpu,内存,io等?... 查看详情

docker篇之一docker镜像及容器(代码片段)

一、Docker核心概念1、镜像(image)Docker的镜像是创建容器的基础,类似虚拟机的快照,可以理解为是一个面向Docker容器引擎的只读模板,比如一个镜像可以是一个完整的centos操作系统,也可以是一个安装了MySQL的应用程序,称之为... 查看详情

docker及docker-compose的使用(代码片段)

摘自 https://www.jianshu.com/p/ca1623ac7723 菜鸟Docker阮一峰的Docker教程Docker是一个开源的容器引擎,它有助于更快地交付应用。方便快捷已经是Docker的最大优势,过去需要用数天乃至数周的任务,在Docker容器的处理下,只需要数... 查看详情

2.docker的架构(代码片段)

一、架构 Docker使用客户端-服务器(C/S)架构模式,使用远程API来管理和创建Docker容器。Docker容器通过Docker镜像来创建。容器与镜像的关系类似于面向对象编程中的对象与类。 Docker镜像(Images)Docker镜像是用于创建Docker容器的... 查看详情

docker简介与安装(代码片段)

Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。一个完整... 查看详情

docker容器卷及提交(代码片段)

镜像的特点Docker镜像都是只读的,当容器启动时,一个新的可写层被加载到镜像的顶部,这一层通常被称为容器层,容器层之下的都叫镜像层。dockercp容器ID:容器内路径目标主机路径镜像Commitdockercommit 提交容器副本使之成为... 查看详情

docker镜像的创建及上传(代码片段)

Docker镜像的创建及上传Docker镜像介绍Docker镜像除了是Docker的核心技术之外也是应用发布的标准格式。一个完整的Docker镜像可以支撑一个Docker容器的运行,在Docker的整个使用过程中,进入一个已经定型的容器之后,就可以在容器中... 查看详情

docker全解(代码片段)

目录说明docker简介为什么是docker容器与虚拟机比较容器发展简史传统虚拟机技术容器虚拟化技术docker能干什么带来技术职级的变化开发/运维(Devops)新一代开发工程师Docker应用场景whydocker?docker的优势docker和dockerHub官网Doc... 查看详情

docker基础命令详解——镜像及容器操作(代码片段)

Docker基础命令详解——镜像及容器操作前言?上篇文章介绍了有关Docker的基础与Linux下docker的安装,本文主要讲解安装docker后的基础使用方法以及命令的介绍,主要是docker镜像操作及容器操作命令。?当然,docker的相关命令非常多... 查看详情

docker的安装镜像操作容器操作及资源控制(代码片段)

Docker概述Docker是在linux容器里运行应用的开源工具,是一种轻量级的虚拟机。Docker包含三大核心概念,分别是:镜像、容器和仓库。Docker的容器技术可以在一台主机上轻松的为任何应用创建一个轻量级的、可移植的、自给自足的... 查看详情

干货docker的安装镜像及容器容器(代码片段)

1、Docker概述Docker是在Linux容器中运行应用的开源工具,是一种轻量级的虚拟机。器容器技术可以在一台主机上轻松地为任何应用创建一个轻量级的、可移植的、自给自足的容器。通过这种容器打包应用程序,意味着简化了重新部... 查看详情

docker架构与原理(代码片段)

注个人理解:docker的镜像是位于最底层,但使用宿主主机的操作系统内核,我们可以看到docker的镜像十分的小,原因是docker镜像只是一些环境的配置,所以十分的小,他是只能读不能写的。docker的容器是依赖与... 查看详情