虚拟化与Docker基本概念与Docker的安装

Docker

Docker 是一个开源的应用容器引擎,它最初是用 Go 语言开发的。Docker 允许开发者将应用程序及其依赖、库和环境打包到一个可移植的容器中,这个容器可以在任何支持 Docker 的 Linux 或 Windows 机器上运行,保证了应用在不同环境之间的一致性和可迁移性。

Docker与VM虚拟机的区别

容器虚拟机
快速启动启动速度相对较慢
通过namespace实现资源隔离,通过cgroup实现限制资源的最大使用量完全隔离。每个虚拟机都有独立的硬件资源
容器相当于宿主机的进程,性能几乎没有损耗需要通过hypervisor虚拟机管理程序对宿主机资源虚拟访问,有一定的性能损耗
单机容量能够支持成百上千个容器单机容量只能支持最多几十个虚拟机
所有容器共享宿主机内核 每个虚拟机都有独立的操作系统和内核

Docker的核心概念

Docker,这一革命性的容器化技术,以其简单、轻量且高效的特点,彻底改变了软件开发和部署的方式。理解Docker的三个核心概念——镜像、容器和仓库,是掌握这一技术的基础。

镜像(Images)

Docker镜像,可以被视为容器的“蓝图”。它是一个静态的文件,包含了创建Docker容器所需的所有指令和代码。镜像是由多层叠加而成的,每层对应于构建过程中的一个指令。这些层是只读的,确保了镜像的可复现性和一致性。用户可以通过编写Dockerfile来定义和构建自己的镜像,Dockerfile是一个包含了一系列构建指令的文本文件。

容器(Containers)

容器是Docker镜像的运行实例。当您从镜像启动一个容器时,Docker会在镜像的最上层添加一个读写层,用于保存容器运行时的状态更改。容器是高度隔离的,它们拥有自己的文件系统、网络配置和进程空间,这使得容器可以在不影响宿主机或其他容器的情况下运行。容器可以被轻松地启动、停止、删除和重启,它们的生命周期管理是通过Docker提供的工具和API来实现的。

仓库(Repositories)

Docker仓库是存储和分发Docker镜像的地方。Docker Hub是Docker官方提供的一个公共仓库,用户可以在这里上传或下载公开的镜像。仓库可以有多个标签,每个标签对应于仓库中的一个镜像版本,这允许用户为同一仓库中的不同版本镜像指定不同的标签。除了公共仓库,Docker还支持私有仓库,这使得企业在内部网络或云服务中存储和管理自己的镜像成为可能。

Docker的安装

Docker只支持64位系统
安装 Docker的依赖环境

yum install -y yum-utils device-mapper-persistent-data lvm2 

设置阿里云镜像源

yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 

安装DOCKER最新版本

yum install -y docker-ce docker-ce-cli containerd.io

启动docker

systemctl start docker.service

Docker基本命令

查看docker版本信息

docker version 

在这里插入图片描述

查看docker基本信息

docker  info  

在这里插入图片描述

镜像管理

  • 列出本地镜像

    docker images
    

    在这里插入图片描述

  • 搜索镜像

    docker search 镜像名称
    

    在这里插入图片描述

  • 拉取镜像

    docker pull 镜像名称
    

    在这里插入图片描述

  • 删除镜像

    docker rmi 镜像ID
    

在这里插入图片描述
上图镜像ID一样,但是TAG不一样若我要删除TAG为web4的镜像可以用以下命令

docker rmi nginx:web4

在这里插入图片描述
用ID删除会删除所有id为 2ac752d7aeb1的镜像,,效果如下

docker rmi  -f 2ac752d7aeb1

如果不加-f会报错Error response from daemon: conflict: unable to delete 2ac752d7aeb1 (must be forced) - image is referenced in multiple repositories
意思是有多个镜像ip为2ac752d7aeb1
在这里插入图片描述

在这里插入图片描述

容器管理

  • 创建并运行容器
    docker run 镜像名称
    

我要用Nginx镜像创建一个容器并且在后台运行 ,容器名为nginx1并且docker上的nginx的80端口在寄主机上的6930端口上命令如下

docker run -d nginx1 -p 6930:80 nginx
			#-d后台运行  -p 指定端口号,前为真机后为虚拟机IP
  • 列出所有容器
    docker ps
    

docker ps -a 可以查看所有的容器
docker ps 只能看见正在运行的容器

在这里插入图片描述

  • 查看容器详情

    docker  inspect 容器ID
    
  • 查看容器日志

    docker logs 容器ID
    

    在这里插入图片描述

  • 停止容器

    docker stop 容器ID
    

    在这里插入图片描述

  • 启动容器

    docker start 容器ID
    

    在这里插入图片描述

  • 删除容器

    docker rm 容器ID
    

仓库管理

  • 登录Docker Hub

    docker login
    

    在这里插入图片描述

  • 推送镜像到仓库

    docker push 镜像名称
    
  • 拉取镜像到仓库

    docker pull 镜像名称
    

容器操作

  • 进入容器
    docker exec -it 容器ID /bin/bash
    

在这里插入图片描述

  • 复制文件

访问docker搭建的nginx
在这里插入图片描述
将我寄主机器上的index.html文件考入容器中
在这里插入图片描述

docker cp 主机路径 容器ID:容器路径
docker cp /opt/index.html  32564ccb17b5:/usr/share/nginx/html

在这里插入图片描述
查看Nginx主页
在这里插入图片描述
成功

下面这条命令是能将docker容器上的文件拷贝到寄主机上

docker cp 容器ID:容器路径 主机路径

我要将下图文件test1文件从docker 容器中拷贝到寄主机/opt目录下
在这里插入图片描述

docker cp 32564ccb17b5:/opt/test1 /opt

在这里插入图片描述

  • 查看容器内部进程

    docker top 容器ID
    

    在这里插入图片描述

  • 查看容器详情

    docker inspect 容器ID
    
  • 备份容器

docker export 32564ccb17b5 > nginx2.tar

在这里插入图片描述

  • 导入容器
 cat nginx2.tar |docker import - nginx:2

在这里插入图片描述

仓库管理

  • 搜索仓库
    docker search 仓库名称
    
  • 保存镜像
    备份镜像
    docker save -o 文件名 镜像名称
    

在这里插入图片描述

  • 加载镜像
    docker load < 文件名
    

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/573440.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

JdbcTemplate详解

1 概述 为了使JDBC更加易于使用&#xff0c;Spring在JDBC API上定义了一个抽象层&#xff0c;以此建立一个JDBC存取框架。 作为Spring JDBC框架的核心&#xff0c;JDBC模板的设计目的是为不同类型的JDBC操作提供模板方法&#xff0c;通过这种方式&#xff0c;可以在尽可能保留…

主食冻干哪个国家的好?全网热销款品控好的主食冻干必买

主食冻干哪个国家的好&#xff1f;谈及主食冻干哪款好&#xff0c;进口的主食冻干总是能被提名。不论是在哪个电商平台搜索“主食冻干”&#xff0c;都会发现那些备受推崇是进口主食冻干。从销售数据上看&#xff0c;这些进口冻干在大型促销活动如双11、618中的销量一直居高不下…

【面试题】java后端开发实习(含答案)

java后端开发实习生-常见面试题 1&#xff09;JDK,JRE,JVM的关系 JDK JRE java开发工具JRE JVM java核心类库 2&#xff09;String类的常用方法 1.关于字符串获取方面 length 获取长度charAt 获取指定索引的字符indexOf 获取字符所在的索引位置lastIndexOf 获取字符所在…

printjs打印表格的时候多页的时候第一页出现空白

现象&#xff1a;打印多页的时候第一页空白了&#xff0c;一页的时候没有问题 插件&#xff1a;printjs 网上搜索半天找到的方式解决&#xff1a; 1. 对于我这次的现象毫无作用。其他情况不得而知&#xff0c;未遇见过。&#xff08;这个应该是大家用的比较多的方式&#xf…

像人脑一样工作!在量子计算机上运行强大的人工智能

内容来源&#xff1a;量子前哨&#xff08;ID&#xff1a;Qforepost&#xff09; 文丨王珩 浪味仙 排版丨沛贤 深度好文&#xff1a;2500字丨8分钟阅读 摘要&#xff1a;Transformer 确实可以在简单的量子硬件上工作&#xff0c;这至少从理论上表明&#xff1a;量子人工智能的…

库存数据可视化分析按这个做,赚大了!

今天我们来看一张库存数据可视化分析驾驶舱&#xff0c;全面了解库存资金占用情况&#xff0c;物料周转情况&#xff0c;库存趋势情况、以及占库存金额最高的商品有哪些等。 为更好地实现以上效果&#xff0c;并且增强报表的可读性、易读性&#xff0c;我们采用了按分析场景选…

Esko Ukkonen: On-line Construction of Suffix Trees

Esko Ukkonen: On-line Construction of Suffix Trees 文章目录 Esko Ukkonen: On-line Construction of Suffix Trees一、后缀树的概念及应用【详见刘方州同学报告】1.1 字典树 Trie1.2 后缀树 Suffix Tree2 后缀树的应用 二、朴素后缀树构造方法及问题三、线性时间内后缀树在…

使用 pytorch训练自己的图片分类模型

如何自己训练一个图片分类模型&#xff0c;如果一切从头开始&#xff0c;对于一般公司或个人基本是难以实现的。其实&#xff0c;我们可以利用一个现有的图片分类模型&#xff0c;加上新的分类&#xff0c;这种方式叫做迁移学习&#xff0c;就是把现有的模式知识&#xff0c;转…

【智能算法】金豺优化算法(GJO)原理及实现

目录 1.背景2.算法原理2.1算法思想2.2算法过程 3.结果展示4.参考文献 1.背景 2022年&#xff0c;N Chopra等人受到金豺狩猎行为启发&#xff0c;提出了金豺优化算法&#xff08;Golden Jackal Optimization, GJO&#xff09;。 2.算法原理 2.1算法思想 GJO 模拟金豺协同狩猎…

20240425在Ubuntu20.04下检测HDD机械硬盘

20240425在Ubuntu20.04下检测HDD机械硬盘 2024/4/25 14:28 百度&#xff1a;免费 HDD 机械硬盘坏道检测 ubuntu HDD机械硬盘 坏道检测 https://blog.csdn.net/anny0001/article/details/136001767 ubuntu 坏道扫描 Mystery_zero 已于 2024-02-02 22:20:46 修改badblocks -b 819…

Exploiting CXL-based Memory for Distributed Deep Learning——论文泛读

ICPP 2022 Paper CXL论文阅读笔记整理 问题 深度学习&#xff08;DL&#xff09;正被广泛用于解决不同领域的科学应用中的复杂问题。DL应用程序使用大规模高性能计算&#xff08;HPC&#xff09;系统来训练给定的模型&#xff0c;需要消耗大量数据。这些工作负载具有很大的内…

k8s使用calico网络插件时,集群内节点防火墙策略配置方法

前言 我们在内网使用k8s时&#xff0c;有时候需要针对整个集群的节点设置防火墙&#xff0c;阻止一些外部访问&#xff0c;或者是仅允许白名单内的ip访问&#xff0c;传统做法是使用firewall之类的防火墙软件&#xff0c;但是&#xff0c;使用firewall存在如下问题&#xff1a…

Unity inputSystem 读取输入值的方法

1&#xff1a;通过关在 PlayerInput 获取 设置后之后在同意物体上挂载C# 脚本 通过事件获得 2&#xff1a; 生成 C#脚本 通过C# 脚本获得 3&#xff1a;通过回调函数

redis中的缓存穿透问题

缓存穿透 缓存穿透问题&#xff1a; 一般请求来到后端&#xff0c;都是先从缓存中查找数据&#xff0c;如果缓存中找不到&#xff0c;才会去数据库中查询数据。 而缓存穿透就是基于这一点&#xff0c;不断发送请求查询不存在的数据&#xff0c;从而使数据库压力过大&#xff…

python+vue得物文具玩具礼品商城系统flask-django

网站素材&#xff1a;收集好看的素材&#xff0c;然后使用PS做出适合网页尺寸的图片。在需求分析阶段以前期调研结果为基础&#xff0c;理解系统功能、性能、可靠性等要求&#xff0c;采用数据流图、实体联系图、状态转换图、数据字典等给出系统的逻辑模型。在设计阶段&#xf…

【静态分析】静态分析笔记07 - 指针分析基础

参考&#xff1a; 【课程笔记】南大软件分析课程7——指针分析基础&#xff08;课时9/10&#xff09; - 简书 -------------------------------------------------------------- 1. 指针分析规则 规则&#xff1a;采用推导形式&#xff0c;横线上面是条件&#xff0c;横线下…

【VTKExamples::Meshes】第十八期 OBBDicer

很高兴在雪易的CSDN遇见你 VTK技术爱好者 QQ:870202403 公众号:VTK忠粉 前言 本文分享VTK样例OBBDicer,并解析接口vtkOBBDicer,希望对各位小伙伴有所帮助! 感谢各位小伙伴的点赞+关注,小易会继续努力分享,一起进步! 你的点赞就是我的动力(^U^)ノ~YO 1. …

GaussDB轻量化运维管理工具介绍

前言 本期课程将从管理平台的架构出发&#xff0c;结合平台的实例管理、实例升级、容灾管理和监控告警的功能和操作介绍&#xff0c;全面覆盖日常运维操作&#xff0c;带您理解并熟练运用GaussDB运维平台完成运维工作。 一、GaussDB 运维管理平台简介 开放生态层 友好Web界面…

解决office2016专业增强版 “你的许可证并非正版,你可能是盗版软件的受害者“

问题描述&#xff1a;安装完office后,用kms已经激活成功&#xff0c;但是一直在上面显示“你的许可证不是正版&#xff0c;并且你可能是盗版软件的受害者&#xff0c;使用正版Office,避免干扰并保护你的文件安全。” 尝试过网上的各种方法都没用&#xff0c;后面发现是用的HEU …

分享:9.3版本无缝导入AVEVA PDMS高版本工程12.0,12.1,E3D

9.3版本可以无缝导入AVEVA PDMS的工程。 UKP3d导入AVEVA PDMS工程的方法 http://47.94.91.234/forum.php?modviewthread&tid163583&fromuid6 (出处: 优易软件-工厂设计软件专家) &#xff08;从AVEVA PDMS导出时元件和等级的功能我们正做收尾工作&#xff0c;到时可以…