English 服务热线: 400-610-7333

虚拟化 + Docker 基本管理 2024-05-06 14:30  作者或来源:CSDN 博客

一、虚拟化简介

1、云端服务器都有哪些

华为云、谷歌云、腾讯云、阿里云、亚马逊、百度云、移动云、天翼云、西部数码云等

1. 国内云

华为云、阿里云、腾讯云、天翼云 (私有云)

2. 国外云

谷歌云、亚马逊

2、云计算的服务模式

云计算的服务模式是分层的

IaaSInfrastructure(基础设施)-as-a-Service

PasSPlatform(平台)-as-a-Service

SaaSSoftware(软件)-as-a-Service

基础设施即服务(IaaS, Infrastructure as a Service
定义:
IaaS 是云计算的基础层级,它向用户提供虚拟化的计算资源,如虚拟机、存储空间、网络和操作系统。用户可以根据需求租用这些基础设施,并对其进行配置和管理,但无需关心底层硬件的维护。
应用场景:适用于需要高度定制化环境的企业,如运行特定应用、开发测试环境、数据备份和恢复等。
平台即服务(PaaS, Platform as a Service
定义:
PaaS 为开发人员提供了一个完整的开发和部署环境,包括操作系统、数据库、中间件、编程框架等。用户可以在服务商提供的平台上直接开发、运行和管理应用程序,无需关心底层基础设施的细节。
应用场景:适合软件开发团队,可以加速应用开发、简化运维工作,如 Web 应用、移动应用后端、大数据分析平台等。
软件即服务(SaaS, Software as a Service
定义:
SaaS 是云计算服务的最高层级,直接向用户提供应用程序,用户通过互联网访问并使用这些应用,无需安装或维护软件。所有应用相关的后台管理、数据存储、安全更新等均由服务提供商负责。
应用场景:广泛应用于日常办公、CRMERP、邮件服务、协作工具等领域,如 Office 365SalesforceGoogle Workspace 等。
       
每种服务模式都代表了从基础设施到最终应用的不同层次的服务抽象,用户可以根据自身需求选择合适的服务模式,实现资源的灵活配置和高效利用,同时降低运营成本和提升业务敏捷性。
        
目前中国使用最多的服务模式是 PaaS ,国外使用最多的是 SaaS

3、关于 Docker 产品

 Docker 是一个开源的应用容器引擎,它允许开发者将应用程序及其所有的依赖包打包成一个轻量级、可移植的容器(Container),然后可以在任何支持 Docker Linux Windows 操作系统机器上运行这个容器,实现应用程序的快速部署和一致性运行环境。Docker 采用操作系统级别的虚拟化技术,相较于传统的虚拟机技术,它更为轻量级,启动速度快,资源利用率更高。

1. 虚拟化产品有哪些?

1. 服务器虚拟化产品

·         VMware vSphere:包括 ESXi hypervisor vCenter Server,提供企业级的虚拟化解决方案。

·         Microsoft Hyper-VWindows Server 内置的虚拟化平台,支持创建和管理虚拟机。

·         Xen:开源虚拟化技术,常用于 Citrix XenServer 和一些 Linux 发行版中。

·         KVMKernel-based Virtual Machine):基于 Linux 内核的开源虚拟化解决方案,广泛应用于云平台。

2. 桌面虚拟化产品

·         VMware Horizon:提供虚拟桌面基础架构(VDI)和应用程序虚拟化。

·         Citrix Virtual Apps and Desktops(原 XenDesktop):支持交付虚拟应用和桌面到任何设备。

·         Microsoft Remote Desktop Services:允许用户远程访问 Windows 应用和桌面。

3. 存储虚拟化产品

·         VMware vSAN:软件定义的存储解决方案,直接在 ESXi 主机的本地存储上创建分布式存储层。

·         Microsoft Storage Spaces DirectWindows Server 中的存储虚拟化功能,支持使用直接附加存储创建存储池。

·         NetApp Data ONTAP:企业级存储虚拟化解决方案,支持数据管理和保护。

4. 网络虚拟化产品

·         VMware NSX:提供软件定义的网络和安全服务,支持网络虚拟化和微分段。

·         Cisco ACIApplication Centric Infrastructure):以应用为中心的网络架构,提供网络虚拟化和策略驱动的网络管理。

·         Open vSwitchOVS):开源的虚拟交换机,常用于 OpenStack 等云平台的网络虚拟化。

5. 容器和轻量级虚拟化产品

·         Docker:容器化平台,用于应用程序的打包、分发和运行。

·         KubernetesK8s):容器编排系统,用于自动化容器化应用的部署、扩展和管理。

·         Linux Containers (LXC):基于操作系统级别的轻量级虚拟化技术,提供容器服务。

2. 虚拟机架构

1. 寄居架构

虚拟机作为应用软件安装在操作系统上
可以在此应用软件上安装多个操作系统
直接安装在硬件上的系统为宿主

本机(真实的操作系统)   ---->   虚拟化产品   ---->   虚拟化操作系统或软件

虚拟机监视器:例如 VMware 
VMware
非常强大,真机可以上网,虚拟机也可以上网。
病毒木马都可以拖到虚拟机运行,与真机脱离,非常安全。

但是真机一旦崩了,虚拟机当然也崩了。所以实际生产环境用的是 源生架构

2. 源生架构

虚拟机软件直接安装在计算机硬件上
虚拟机本身就是一个操作系统
在这个虚拟机中可以同时运行多个操作系统

裸金属 服务器  --->  虚拟化产品

3. 虚拟化技术概述

虚拟化技术允许在单一物理硬件上创建和运行多个独立的虚拟环境,核心分类包括仿真虚拟化、半虚拟化和全虚拟化,每种技术各有侧重:

·         仿真虚拟化:无需硬件支持,兼容性强,能在不同架构间运行操作系统,但性能较低。

·         半虚拟化:需修改客户系统以提升性能,直接与虚拟化层通信,适用于特定场景和注重性能的环境。

·         全虚拟化:现代技术大多结合硬件辅助,以实现接近原生的性能,同时保持高度兼容性,适用于广泛场景。

4. 主流虚拟化产品对比

1. VMware 系列

VMware Workstation: 面向个人用户的 Windows Linux 上的虚拟机软件,适合开发、测试及多系统体验。
VMware Fusion:
专为 Mac 设计的虚拟化软件,允许在 Mac 上运行 Windows 及其他操作系统。
VMware ESXi & vSphere:
企业级裸金属虚拟化平台,直接安装在物理服务器上,提供高性能和集中管理能力。可通过客户端或网页端访问管理界面,网页端逐渐成为主流,便于远程管理和维护。

之前用的是客户端连接  VMware vsphere
 
现企业   使用 网页端连接 VMware vsphere

2.KVM/OpenStack

·         KVM: 基于 Linux 内核的虚拟化技术,开源且强大,尤其适用于构建私有云环境。与 OpenStack 等云平台结合,提供全面的虚拟化解决方案,适合大规模部署和服务自动化。

3.Xen

·         Xen Hypervisor: 是一个成熟的开源虚拟机监视器,特别是与 RHELRed Hat Enterprise Linux5 紧密集成,支持半虚拟化和全虚拟化,适用于企业级服务器虚拟化场景。

5. 其他半 / 全虚拟化产品

·         Hyper-V (微软): 微软开发的虚拟化平台,特别适合 Windows 环境,广泛应用于 Windows Server,支持半虚拟化技术。

·         VirtualBox: 一款广受欢迎的免费虚拟机软件,适用于多种操作系统,支持全虚拟化,适合开发测试和教育用途。

·         Citrix Hypervisor: 前身为 XenServer,专注于提供高效的服务器和桌面虚拟化解决方案,适用于企业环境,支持全虚拟化。

① KVM   全虚拟化产品    调用 linux 内核 来完成

② ESXI  (裸金属虚拟化)  企业用的特别多  除了云  就是它

以下两个图解:

二、Docker 概述

1IT 架构演变

云计算涌现出很多改变传统 IT 架构和运维方式的新技术,比如虚拟机、容器、微服务、Serverless(无服务),无论这些技术应用在哪些场景,降低成本、提升效率是云服务永恒的主题。

Bare Metal(裸金属):运行物理机,也称为裸金属
Virual machines(
虚拟机):可以在一台物理机上创建多个虚拟机,并把物理配置分发成多个虚拟配置
缺点:性能损耗大,大约损耗 50%
虚拟机常用软件:VMware workstationwindowsvm Sphere+ESXI Windows server)、KVMlinux 内核))
Containers(
容器):容器内部自身有一个小型操作系统
常用软件:dockerpodmanrocketcontainer
functions
函数(函数化、代码化)

2、什么是 Docker

1.  Docker 是一个开源的应用容器引擎基于 go 语言开发并遵循了 apache2.0 协议开源

2.  Docker 是在 Linux 容器里运行应用的开源工具,是一种轻量级虚拟机

3.  Docker 的容器技术可以在一台主机上轻松为任何应用创建一个轻量级的,可移植的,自给自足的容器。

Docker Logo 设计为蓝色鲸鱼,拖着许多集装箱,鲸鱼可以看作为宿主机,集装箱可以理解为相互隔离的容器,每个集装箱中都包含自己的应用程序。

3Docker 的设计宗旨

BuildShip and Run Any AppAnywhere

即通过对应用组件的封装、发布、部署、运行等生命周期的管理,达到应用组件级别的一次封装,到处运行的目的。这里的组件,既可以是一个应用,也可以是一套服务,甚至是一个完整的操作系统。

4Docker 的特点

容器化越来越受欢迎,因为容器是:

1.  灵活:即使是最复杂的应用也可以集装箱化。

2.  轻量级:容器利用并共享主机内核。

3.  可互换:可以即时部署更新和升级。

4.  便携式:可以在本地构建,部署到云,并在任何地方运行。

5.  可扩展:可以增加并白动分发容器副本。

6.  可堆叠:可以垂直和即时堆叠服务。

容器是在 linux 上本机运行,并与其他容器共享主机的内核,它运行的是一个独立的进程,不占用其他任何可执行文件的内存,非常轻量。

虚拟机运行的是一个完整的操作系统,通过虚拟机管理程序对主机资源进行虚拟访问,相比之下需要的资源更多。

5Docker KVM(虚拟机) 的区别

1. 隔离共享

虚拟机通过添加 Hypervisor 层(虚拟化中间层),虚拟出网卡、内存、CPU 等虚拟硬件,再在其上建立虚拟机,每个虚拟机都有自己的系统内核。而 Docker 容器则是通过隔离(namesapce)的方式,将文件系统、进程、设备、网络等资源进行隔离,再对权限、CPU 资源等进行控制(cgroup),最终让容器之间互不影响,容器无法影响宿主机。

容器与宿主机共享内核、文件系统、硬件等资源。

2. 性能与损耗

与虚拟机相比,容器资源损耗要少。
同样的宿主机下,能够建立容器的数量要比虚拟机多
但是,虚拟机的安全性要比容器稍好,要从虚拟机攻破到宿主机或其他虚拟机,需要先攻破 Hypervisor 层,这是极其困难的
docker 容器与宿主机共享内核、文件系统等资源,更有可能对其他容器、宿主机产生影响。

不同点

Docker 容器

虚拟机

启动速度

快,几秒钟

慢,几分钟

运行性能

接近原生(直接在内核中运行)

运行于 Hypervisor 上,50% 左右损失

磁盘占用

小,甚至几十 KB(根据镜像层的情况)

非常大,上 GB

并发性

一台宿主机可以启动成百上千个容器

最多几十个虚拟机

隔离性

进程级别

资源隔离 / 限制

操作系统

主要支持 Linux

主要支持 Linux

封装程度

只打包项目代码和依赖关系,共享宿主机内核

完整的操作系统,与宿主机隔离

6namespace 的六项隔离

namespace

系统调用参数

隔离内容

UTS 

CLONE_NEWUTS

主机名与域名

IPC

CLONE_NEWWIPC

信号量、消息队列和共享内存

PID

CLONE_NEWPID

进程编号 (重点)

NETWORK

CLONE_NEWNET

网络设备、网络栈、端口等 (重点)

MOUNT

CLONE_NEWNS

挂载点(文件系统)

USER

CLONE_NEWUSER

用户和用户组(3.8 以后的内核才支持〉

7Docker 有哪些优势?和虚拟化比有什么优势?

把容器化技术做成了标准化平台

docker 引擎统一了基础设施环境——docker 容器环境(引擎)
docker
引擎统一了程序打包(装箱) 方式——docker 镜像(把引擎放在镜像中,带着镜像到处跑)
docker
引擎统一了程序部署(运行)方式——docker 容器(利用引擎把这个镜像再去运行为之前的相同的一模一样的容器了)
镜像——》封装的一个时刻的服务 / 应用状态

容器——》应用跑起来的状态(正常提供服务的状态 - 运行时)

实现了一次构建,多次、多处使用。

三、Docker 核心概念

1、镜像   容器  仓库

镜像:包含了各种环境或者服务(tomcat redis nginx)的一个模板。运行容器的基础,包含运行应
用程序所需的所有内容。

容器:是镜像运行起来之后的一个实例,可以把容器看做是一个简易版的 linux 环境容器就是集装箱
从镜像创建的叫做运行实例。

仓库:存放镜像的场所,最大的公开库是 docker。私有仓库 harboor

2Docker 使用场景

1.Docker 在内核中支持 2 种重要技术

docker 本质就是宿主机的一个进程,docker 通过 namespace 实现资源隔离,通过 ==cgroups == 实现资源限制,通过写时复制技术(copy-on-write)实现了高效的文件操作(类似虚拟机的磁盘。比如分配 500G,并不是实际占用物理磁盘 500g,而是随着使用扩展)

2. 应用场景

打包应用部署简单、适合做微服务部署、适合持续集成和持续交付、提高开发效率、快速部署。

打包应用程序部署简单
可脱离底层硬件任意迁移(实现了应用的隔离,将应用拆分并进行解耦)
例如:需要把服务器从腾讯云迁移到阿里云,如果采用的是 Docker容器技术,整个迁移的过程只需要在新的服务器上启动我们需要的容器就可以了。
适合做微服务的部署
适合持续集成和持续交付(CI/CD:开发到测试发布
部署微服务
提供PASS产品(平台即服务){OpenStack的云主机类似于阿里云的ECS,属于IAASDocker(K8S)属于PAAS}

3Docker 架构

1.  Docker 使用客户端 - 服务端(C/S)架构。Docker 客户端与 Docker 守护进程进行对话,该守护进程完成了构建,运行和分发 Docker 容器的繁重工作。

2.  Docker 区别于传统的虚拟化,不需要虚拟硬件资源,直接使用容器引擎,所以速度快。

3.  Docker daemon: 守护进程

4.  Docker 守护程序(dockerd)侦听 Docker API 请求并管理 Docker 对象。例如图像、容器、网络和卷,守护程序还可以与其他守护程序通信以管理 Docker 服务。

4Docker 工作流程

1.  客户端发起各种各样的命令,给与主机

2.  主机会调用镜像,如果有镜像直接用,运行为容器

3.  如果镜像里没有会到 registry 公共仓库去拉去镜像,拉到本地后再运行为容器

四、部署 Docker

目前 Docker 只能支持 64 位系统。

部署环境

systemctl stop firewalld.service
setenforce 0

1、安装依赖包

#安装依赖包
yum install -y yum-utils device-mapper-persistent-data lvm2 
-----------------------------------------------------------------------------------------
yum-utils:提供了 yum-config-manager 工具。
device mapper: 是Linux内核中支持逻辑卷管理的通用设备映射机制,它为实现用于存储资源管理的块设备
驱动提供了一个高度模块化的内核架构。
device mapper存储驱动程序需要 device-mapper-persistent-data  lvm2

2、设置阿里云镜像源

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

3、安装 Docker-CE 并设置为开机自动启动

yum install -y docker-ce docker-ce-cli containerd.io  安装最新版本
docker-ce-20.10.18
 
--------------------------------------------------------------------------------------------
安装好的Docker系统有两个程序,Docker服务端和Docker客户端。其中Docker服务端是一个服务进程,负责管理所有容器。 Docker客户端则扮演着Docker服务端的远程控制器,可以用来控制Docker的服务端进程。大部分情况下Docker服务端和客户端运行在一台机器上。
--------------------------------------------------------------------------------------------

systemctl start docker.service
systemctl enable docker.service
systemctl status docker.service

4、查看 docker 版本信息

docker version

5docker 信息查看

docker info   ##查看信息

五、Docker 镜像操作

1、搜索镜像

格式:docker search 关键字

格式:docker search 关键字
docker search nginx

2、获取镜像

格式:docker pull 仓库名称 [: 标签]
#
如果下载镜像时不指定标签,则默认会下载仓库中最新版本的镜像,即选择标签为 latest 标签。

docker pull nginx

3、镜像加速器

浏览器访问  https://cr.console.aliyun.com/cn-shanghai/instances/mirrors  获取镜像加速器配置

 

sudo mkdir -p /etc/docker       ##其实/etc/docker路径已经存在,可以不创建
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://5nbz4xnp.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

systemctl daemon-reload            ##重新加载
systemctl restart docker.service   ##重新启动服务

4、查看镜像信息

镜像下载后存放在 /var/lib/docker
Docker
相关的本地资源存放在 /var/lib/docker/ 目录下,其中 containers 目录存放容器信息,image 目录存放镜像信息,overlay2 目录下存放具体的镜像底层文件。

[root@localhost ~]#ls /var/lib/docker/
buildkit  containers  engine-id  image  network  overlay2  plugins  runtimes  swarm  tmp  volumes

5、查看下载的镜像文件信息

镜像下载后存放在 /var/lib/docker 
#
查看下载的镜像文件信息, 主要存放镜像名称与镜像 id

cat /var/lib/docker/image/overlay2/repositories.json

6、查看下载到本地的所有镜像

REPOSITORY   TAG       IMAGE ID       CREATED      SIZE
nginx        latest    ae2feff98a0c   9 days ago   133MB
--------------------------------------------------------------------------------------------
REPOSITORY:镜像属于的仓库;
TAG:镜像的标签信息,标记同一个仓库中的不同镜像;
IMAGE ID:镜像的唯一ID 号,唯一标识一个镜像;
CREATED:镜像创建时间;
VIRTUAL SIZE:镜像大小;
--------------------------------------------------------------------------------------------
docker images   ##查看本地所有镜像

7、根据镜像的唯一标识 ID 号,获取镜像详细信息

格式:docker inspect 镜像 ID

docker inspect 2ac752d7aeb1

8、为本地的镜像添加新的标签

格式:docker tag 名称:[标签] 新名称:[新标签]

docker tag nginx:latest nginx:web
 
docker images | grep nginx

9、删除镜像

格式:
docker rmi
仓库名称: 标签                # 当一个镜像有多个标签时,只是删除其中指定的标签
或者
docker rmi
镜像 ID                         # 会彻底删除该镜像

注意:如果该镜像已经被容器使用,正确的做法是先删除依赖该镜像的所有容器,再去删除镜像。

docker rmi nginx:web
 
docker rmi 2ac752d7aeb1

10、存出镜像:将镜像保存成为本地文件

格式:docker save -o 存储文件名 存储的镜像

cd /opt
docker save -o nginx nginx:latest                    #存出镜像命名为nginx存在当前目录下
ls

12、载入镜像:将镜像文件导入到镜像库中

这儿就直接空的上面演示

13、上传镜像

默认上传到 docker Hub 官方公共仓库,需要注册使用公共仓库的账号。https://hub.docker.com
可以使用 docker login 命令来输入用户名、密码和邮箱来完成注册和登录。
在上传镜像之前,还需要先对本地镜像添加新的标签,然后再使用 docker push 命令进行上传。

docker tag nginx:latest soscscs/nginx:web            #添加新的标签时必须在前面加上自己的dockerhubusername
docker login                                                         #登录公共仓库
Usernamesoscscs
passwordabc123456
docker push soscscs/nginx:web                                #上传镜像

六、Docker 容器操作

1、创建容器

容器创建:就是将镜像加载到容器的过程。
新创建的容器默认处于停止状态,不运行任何程序,需要在其中发起一个进程来启动容器。

格式:docker create [选项] 镜像
常用选项:
-i:让容器开启标准输入
-t:让 Docker 分配一个伪终端 tty
-it :合起来实现和容器交互的作用,运行一个交互式会话 shell 
docker create -it nginx:latest /bin/bash

2、查看容器的运行状态

docker ps               ##  不加 -a 只查看运行状态的容器
docker ps -a                   ##     -a  选项可以显示所有的容器
 
CONTAINER ID   IMAGE          COMMAND        CREATED     STATUS     PORTS      NAMES
容器的ID       加载的镜像      运行的程序       创建时间     当前的状态   端口映射    名称

3、启动容器

格式:docker start 容器的 ID / 名称

docker start e59f6a2bf793
 
docker ps
docker ps -a

4、创建并启动容器

可以直接执行 docker run 命令, 等同于先执行 docker create 命令,再执行 docker start 命令。


注意:容器是一个与其中运行的 shell 命令共存亡的终端,命令运行容器运行, 命令结束容器退出。

docker 容器默认会把容器内部第一个进程,也就是 pid=1 的程序作为 docker 容器是否正在运行的依据,如果 docker 容器中 pid = 1 的进程挂了,那么 docker 容器便会直接退出,也就是说 Docker 容器中必须有一个前台进程,否则认为容器已经挂掉。

/var/lib/docker
当利用 docker run 来创建容器时, Docker 在后台的标准运行过程是:
1)检查本地是否存在指定的镜像。当镜像不存在时,会从公有仓库下载;
2)利用镜像创建并启动一个容器;
3)分配一个文件系统给容器,在只读的镜像层外面挂载一层可读写层;
4)从宿主主机配置的网桥接口中桥接一个虚拟机接口到容器中;
5)分配一个地址池中的 IP 地址给容器;
6)执行用户指定的应用程序,执行完毕后容器被终止运行。

docker run centos:7 /usr/bin/bash -c ls /
docker ps -a

5、在后台持续运行 docker run  创建的容器

需要在 docker run 命令之后添加 -d 选项让 Docker 容器以守护形式在后台运行。并且容器所运行的程序不能结束。

docker run -d centos:7 /usr/bin/bash -c "while true;do echo hello;done"
 
docker ps -a

docker run -itd --name test1 centos:7 /bin/bash   #创建容器并持续运行容器

6、终止容器运行

格式:docker stop 容器的 ID / 名称

docker stop 1d8367958564
docker ps -a

7、容器的进入

需要进入容器进行命令操作时,可以使用 docker exec 命令进入运行着的容器。

格式:docker exec -it 容器 ID / 名称 /bin/bash
-i
选项表示让容器的输入保持打开;
-t
选项表示让 Docker 分配一个伪终端。

ocker start 1d8367958564                                     #进入容器前,确保容器正在运行
docker exec -it 1d8367958564 /bin/bash
ls
exit                           #退出容器后,容器仍在运行
docker ps -a
 
docker run -it centos:7 bash      #不加 -d 选项会创建容器后直接进入容器,但是退出容器,容器也会停止

8、容器与本机的文件复制

1. 怎么把宿主机的文件传入到容器内部

[root@localhost opt]#docker cp /opt/test.txt 1d8367958564:/opt
 
[root@localhost opt]#docker exec -it 1d8367958564 /bin/bash

2. 怎么把容器的文件传入到宿主机

[root@1d8367958564 opt]# docker cp 1d8367958564:/opt/ccc.txt  ./
 
exit

9、容器的导出与导入

用户可以将任何一个 Docker 容器从一台机器迁移到另一台机器。在迁移过程中,可以使用 docker export 命令将已经创建好的容器导出为文件,无论这个容器是处于运行状态还是停止状态均可导出。可将导出文件传输到其他机器,通过相应的导入命令实现容器的迁移。

1. 容器的到处

导出格式:docker export 容器 ID / 名称 > 文件名

docker export 1d8367958564 > centos7.tar

2. 容器的导入

导入格式:cat 文件名 | docker import – 镜像名称: 标签

cat centos7.tar | docker import - centos7:test                       #导入后会生成镜像,但不会创建容器

10、容器和镜像的批量删除

格式:docker rm [-f] 容器 ID / 名称

docker ps -a | awk 'NR>=2{print "docker stop "$1}' | bash                   #批量停止容器
docker ps -a | awk 'NR>=2{print $1}'| xargs docker stop
 
docker ps -a | awk 'NR>=2{print "docker rm "$1}' | bash                             #批量删除所有容器
docker ps -a | awk 'NR>=2{print $1}'| xargs docker rm
 
docker images | awk 'NR>=2{print "docker rmi "$3}'| bash                    #批量删除镜像
docker images | grep none | awk '{print $3}' | xargs docker rmi             #删除none镜像
 
docker rm $(docker ps -a -q)          #批量清理后台停止的容器

1. 删除已经停止的容器  

docker ps -a
 
docker stop df1e7ec0e972
docker rm df1e7ec0e972                #删除已经终止状态的容器

2. 删除正在运行的容器

docker rm -f 1d8367958564                     #强制删除正在运行的容器

 3. 批量停止容器

docker ps -a | awk 'NR>=2{print "docker stop "$1}' | bash

4. 批量删除所有容器

docker ps -a | awk 'NR>=2{print "docker rm "$1}' | bash

5. 批量删除镜像

docker images | awk 'NR>=2{print "docker rmi "$3}'| bash

总结:

1、虚拟化

VMware workstation  个人版
VMware  sphere / ESXI  
企业级虚拟化
openstack
(开发)/KVM  Linux 环境虚拟机   私有云环境

2、容器

·         容器:  提供多台主机上运行应用程序的相同的运行环境

·         Docker 是一个开源的应用容器引擎,基于 go 语言开发  是容器里面的运行应用的工具,是一个轻量级的虚拟机,可用在 docker 多个平台去使用

·         docker 容器可以被看做运行在宿主机上的一个进程   容器共享宿主机内核

·         容器通过 namespace(命名空间、名称)资源隔离,   通过 cgroup(资源配额)去限制资源

3Docker 核心概念

1.  镜像:运行容器的基础,包含运行应用程序所需的所有内容

2.  容器:是从镜像藏剑的运行实例

3.  仓库:集中保存镜像的地方 (共有仓库 docker hub、私有仓库 harbor)

 

 

 

 

服务热线:400-610-7333 | 邮箱:service@gpos.cn | 电话:8610-82564561/71 | 传真:8610-82564561-8025 | 京ICP备18017976号 | 京公网安备 11010802036102号 Copyright © 2005-2024 Beijing Golden Point Outsourcing Service Co., Ltd. All Rights Reserved. | 北京金支点技术服务有限公司保留所有权利。