在计算机中,虚拟化(英语:Virtualization)是一种资源管理技术,是将计算机的各种实体资源,如服务器、网络、内存及存储等,予以抽象、转换后呈现出来,打破实体结构间的不可切割的障碍,使用户可以比原本的组态更好的方式来应用这些资源。这些资源的新虚拟部份是不受现有资源的架设方式,地域或物理组态所限制。一般所指的虚拟化资源包括计算能力和资料存储。在实际的生产环境中,虚拟化技术主要用来解决高性能的物理硬件产能过剩和老的旧的硬件产能过低的重组重用,透明化底层物理硬件,从而最大化的利用物理硬件 对资源充分利用。虚拟化技术种类很多,例如:软件虚拟化、硬件虚拟化、内存虚拟化、网络虚拟化(vip)、桌面虚拟化、服务虚拟化、虚拟机等等。

kvm:kernel-based-virtual-machine即基于内核的虚拟机开源的系统虚拟环模块
exsi:VMware的商用的装在裸机上的可以虚拟化出多个机器的管理程序
openstack:Python开发的管理云平台,如华为云、电信云
docker:容器技术
k8s:管理docker容器的容器编排

一、Docker简介及安装

1. 介绍

Docker 是一个开源项目,诞生于 2013 年初,最初是 dotCloud 公司内部的一个业余项目。它基于 Google 公司推出的 Go 语言实现。 项目后来加入了 Linux 基金会,遵从了 Apache 2.0 协议,项目代码在 GitHub 上进行维护,Docker 自开源后受到广泛的关注和讨论,以至于 dotCloud 公司后来都改名为 Docker Inc。Redhat 已经在其 RHEL6.5 中集中支持 Docker;Google 也在其 PaaS 产品中广泛应用。Docker 项目的目标是实现【轻量级的操作系统虚拟化解决方案】。Docker 的基础是 Linux 容器(LXC)等技术。在 LXC 的基础上 Docker 进行了进一步的封装,让用户不需要去关心容器的管理,使得操作更为简便。用户操作 Docker 的【容器就像操作一个快速轻量级的虚拟机】一样简单。

相关docker的概念讲解
docker是cs架构 使用的http协议,符合resful规范
Docker镜像:特殊的文件系统
Docker容器:镜像运行起来,成为了容器,可以对比成>镜像-类;对象-容器
Registry(注册中心):相当于Python的pip install、或类似于git pull
image

2. 安装

本篇主要讲在Linux系统中的安装方式,安装到Windows或Mac的方法很简单,点点点,一路下一步即可,但是需要搞懂前置条件需要修改一些配置,反正也涉及不到这两个操作系统,实际工作环境docker基本都在Linux操作系统中使用

第一步:如果之前使用过的话需要先卸载

yum remove docker docker-common  docker-selinux docker-engine
rm -rf /var/lib/docker

第二步:安装

sudo yum install -y yum-utils device-mapper-persistent-data lvm2
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sudo yum install docker-ce

第三步:按照完通过查看版本号来确定是否成功

docker -v

二、Docker 启动设置镜像

1. 查看以及启动docker的相关命令

第一步:安装完成之后可以查看docker状态

systemctl status docker

第二步:启动docker的命令

systemctl start docker

2. 设置国内镜像站

这里是docker官网

第一步:先获取属于自己的镜像加速器

先去地址获取自己镜像地址

第二步:进入docker的配置文件

vim /etc/docker/daemon.json

第三步:修改配置并保存退出

{
  "registry-mirrors": ["https://zho2fb41.mirror.aliyuncs.com"]
}

第四步:执行以下命令进行重新加载配置文件并重启

sudo systemctl daemon-reload
sudo systemctl restart docker

3. 启动与停止docker服务的常用命令

# 启动docker:
systemctl start docker

# 停止docker:
systemctl stop docker

# 重启docker:
systemctl restart docker

# 查看docker状态:
systemctl status docker

# 开机启动:
systemctl enable docker

# 查看docker概要信息
docker info

# 查看docker帮助文档
docker --help

三、 镜像相关命令

# 1 查找镜像
docker search 镜像名称
建议去hub.docker.com 直接搜,更直观(跟git拉去项目一样)


# 2 拉取镜像,指定标签 tag
docker pull centos:7
如果不指定标签,会下载最新


# 3 查看本地镜像
docker images  # 等同于 docker image ls


# 4 删除镜像
docker rmi container_ID   # 可以同时删多个

# 5 删除所有镜像 查出所有镜像的id号
docker rmi `docker images -q`

四、镜像制作成容器并运行

1. 查看运行的容器

# 查看正在运行的容器
docker ps
# 查看所有容器,-a 指的是 all最后的意思
docker ps -a
# 查看最后一次运行的容器,-l 指的是 last最后的意思
 docker ps -l

2. 运行容器

# 启动一个centos容器,名字叫mycentos,并且进入
docker run -it --name=mycentos centos:7
yum install vim -y  # 在容器中装了vim软件
exit  # 退出,容器停止了

# 启动/停止容器
docker start mycentos
docker stop container_ID

# 进入到容器内部
docker exec -it  f82e8578b9b1 /bin/bash

3. 做目录映射

# -v参数:目录映射
# 以后无论在宿主机还是容器中修改当前目录下的文件,都会相互影响不用提前在宿主机新建mire文件
docker run -id --name=mire -v /home/mire:/mire centos:7

4. 做端口映射

docker run -id --name=mysql -p 80:3306  -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7

netstat -nlp |grep 80  # 查看本机80端口占用情况