首页 > 其他分享 >docker简介和基础概念

docker简介和基础概念

时间:2023-01-06 09:33:30浏览次数:53  
标签:容器 存储 简介 宿主机 概念 镜像 docker 运行

  • docker是什么

docker基于linux内核的cgroup、namespace和unionfs等技术,对进程实行封装隔离,属于os层面的虚拟化技术。

由于进程的隔离独立于宿主机和其他隔离的进程,因此也称之为容器。

传统虚拟机需要虚拟出一套硬件,在该硬件上搭建一套完整的操作系统,再运行所需的应用。而容器内的应用进程直接运行在宿主机的内核上,容器没有自己的内核,不需要硬件虚拟,更轻便。


 

  • 为什么要使用docker
  • 更高效的利用系统资源,不需要硬件虚拟,不需要创建完整的os。
  • 更快的启动时间
  • 一致的运行环境,docker镜像提供了完整的运行时环境,确保了一致性
  • CICD,使用dockerfile来进行镜像构建,结合ci进行集成测试,结合cd进行自动部署
  • 更轻松的迁移,由于运行环境的一致性,可以快速的在多个不同的平台间进行迁移
  • 更轻松的维护和扩展,docker使用分层存储以及镜像技术,使得重复部分的应用更易被复用

 

  • 基本概念
  • 镜像
    • 操作系统分为内核和用户空间,内核启动后,会挂载root文件系统提供用户空间支持,docker镜像相当于是一个root文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,不包含任何动态数据,其内容在构建之后也不会被改变
    • 分层存储,由于镜像包含完成的root文件系统,体积往往过大,利用union fs技术,将镜像设计为分层存储的架构,由一组多多层文件系统组成,另外还使得镜像的复用、定制变的更容易
  • 容器
    • 容器是镜像运行时的实体,可以被创建、启动、停止、删除、暂停等,实质是进程,与宿主机的进程不同,容器的进程运行于属于自己的namespace,有自己的root文件系统、网络配置、进程空间、用户ID空间,容器内的进程运行在一个隔离的环境里,提升了容器的安全性
    • 容器也有分层的概念,以镜像为基础层,在其上面构建一个当前容器的存储层,容器不应向存储层写入任何数据,要保持容器存储层的无状态化,所有文件的写入操作,应使用volume或者绑定宿主机目录,在这些位置的读写会跳过容器存储层,直接对宿主机或网络存储设备进行读写
    • volume的生命周期独立于容器,使用volume后,容器删除或重新运行,数据不会丢失
  • docker registry
    • 镜像的集中存储,可以在其他服务器上使用镜像,一个docker registry可以包含很多仓库,每个仓库可以包含多个标签tag,每个tag对应一个镜像
    • 一个仓库会包含同一个软件不同版本的镜像,标签对应于版本,例如ubuntu:14.04

 

  • 使用docker镜像

    从仓库获取镜像

  • docker pull [选项] [Docker Registry 地址[:端口号]/]仓库名[:标签]     
  • eg : docker pull ubuntu:14.04
  • 运行
    • 有了镜像后,就可以以这个镜像为基础启动并运行一个容器,docker run就是运行容器的命令    

列出镜像

  docker image ls

删除本地镜像

  docker image rm [选项] <镜像1> [<镜像2> ...] ,其中, <镜像> 可以是 镜像短 ID 、 镜像长 ID 、 镜像名 或者 镜像摘要 。

  docker image rm ubuntu

  镜像的唯一标识是其ID和摘要,却可以有多个标签,并非所有的rm都是删除镜像,多个标签的可能只是删除了某个标签。

  删除的时候也是从上层向基础层方向依次判断删除

管理本地主机上的镜像

    介绍镜像实现的基本原理

 



 

标签:容器,存储,简介,宿主机,概念,镜像,docker,运行
From: https://www.cnblogs.com/weizhenlu/p/17028763.html

相关文章

  • docker安装rabbitmq
    创建挂载目录mkdir-p/opt/docker/rabbitmq启动dockerrun-d--restart=always--name=rabbitmq-p5672:5672-p15672:15672\-v/opt/docker/rabbitmq:/var/lib/rab......
  • win10试安装docker部署hyperf
    一:部署虚拟机,这里使用的win系统带的Hyper-V虚拟机,其它虚拟机也行1.win+R打开命令行  2.安装Hyper-V. 失败放弃安装,选择其它吧3.win10安装VMware这里参考ht......
  • docker部署Jenkins
     进入jenkins容器查看安装内容dockerps 查看容器id获取id后 通过命令进入对应容器的命令行:dockerexec-itid号/bin/bash执行前配置1.Jenkins-manageJen......
  • docker 安装nacos(未完成)
    1、创建nacos数据库sql语句在下面dockerrm-fnacosdockerpullnacos/nacos-server:1.3.1dockerrun-d-p8848:8848-p9848:9848\--namenacos\--envMODE=s......
  • docker 安装mysql
    1、dockerrm-fmysqlmkdir-p/root/cloud/mysql/logmkdir-p/root/cloud/mysql/datamkdir-p/root/cloud/mysql/confcd/root/cloud/mysql/conf/vimy.cnf[......
  • 仿bbs项目之评论功能完善,后台管理功能部分讲解,bs4模块简介
    目录仿bbs项目之评论功能完善,后台管理功能部分讲解,bs4模块简介昨日内容回顾今日内容概要今日内容详细根评论完善后台管理添加文章仿bbs项目之评论功能完善,后台管理功能部......
  • 机器学习的基本概念
    1什么是machinelearning?lookingforfunctionfunction的类别Regression:输出的是一个量(连续量)Classification:输出的是某个类别(离散量)StructuredLearning:创造一些有......
  • docker network
    dockernetwork1、是什么docker不启动,默认网络情况ens33locirbr0docker启动后,网络情况多了一个docker0查看docker网络模式命令dockernetworkls2、常用基本命令All命令doc......
  • docker 在Mac的M1芯片下,有的不成功的解决
    version:'3.7'services:prometheus:container_name:"prometheus"restart:alwaysimage:prom/prometheusdeploy:resources:......
  • 第二十五章《图书管理系统》第1节:图书管理系统简介
     图书管理系统具有图书信息管理、读者信息管理和借阅信息管理三大功能模块,本小节将从软件功能、数据库系统设计和项目结构几个方面介绍该软件系统的设计方案。25.1.1系统功......