1 docker 介绍
1.1 虚拟化
在计算机中,虚拟化(英语:Virtualization)是一种资源管理技术,是将计算机的各种实体资源,如服务器、网络、内存及存储等,予以抽象、转换后呈现出来,打破实体结构间的不可切割的障碍,使用户可以比原本的组态更好的方式来应用这些资源。这些资源的新虚拟部份是不受现有资源的架设方式,地域或物理组态所限制。一般所指的虚拟化资源包括计算能力和资料存储。
在实际的生产环境中,虚拟化技术主要用来解决高性能的物理硬件产能过剩和老的旧的硬件产能过低的重组重用,透明化底层物理硬件,从而最大化的利用物理硬件 对资源充分利用
虚拟化技术种类很多,例如:软件虚拟化、硬件虚拟化、内存虚拟化、网络虚拟化(vip)、桌面虚拟化、服务虚拟化、虚拟机等等。
# kvm,VMware,openstack,docker,k8s
-kvm,vmware:虚拟化软件
-openstack,阿里飞天:虚拟化软件管理web项目 -- python
-docker:容器化
-k8s:容器管理编排
1.2 docker
Docker 是一个开源项目,诞生于 2013 年初,最初是 dotCloud 公司内部的一个业余项目。它基于 Google 公司推出的 Go 语言实现。 加了 Linux 基金会,遵从了 Apache 2.0 协议,项目代码在上进行维护。
容器化技术,区分于虚拟机,又类虚拟机,兼具虚拟机隔离的优点,又有速度快的优点
容器资源隔离,网络隔离
把容器当成一个虚拟机即可
docker 容器管理
-docker swarm
-k8s
Docker 的基础是 Linux 容器(LXC)等技术
1.3 docker和其他虚拟机比较
# docker 不需要虚拟化出 操作系统这一层---》更轻量级--占空间更小---》还能实现隔离
# 虚拟机技术的缺点:
1.资源占用太多
2.冗余步骤多
3.启动很慢
# 容器化技术
1.服务器资源利用率高
2.比较轻量化
3.打包镜像测试,一键运行
比较Docker和虚拟机技术不同:
1.传统虚拟机,虚出一套硬件,运行一个完整的操作系统,然后在这个系统上安装和运行软件
2.容器内的应用之间运行在 宿主机的内容,容器是没有自己的内核的,也没有虚拟我们的硬件,所以久轻便了
3.每个容器间是互相隔离的,每个容器内都有属于自己的文件系统,互不影响
4.安全性,docker的安全性更弱,
5.与虚拟机相比,docker隔离性更弱,docker属于进程之间的隔离,虚拟机可实现系统级别隔离
7docker创建时秒级的,docker的快速迭代性,无论是开发、测试、部署都可以节约大量时间
1.4 docker架构
# cs 架构---》客户端服务端
- c 端:用户操作,输入命令
- s端:接收用户命令,执行
-c、s通信,使用http协议,遵循restful规范
-mysql:tcp---》自定义的
-redis:tcp---》自定义的
# 架构
1 client:客户端,输入命令
2 服务端:
containers:容器
images:镜像--》从注册中心下来下来的
3 register:注册中心
-放了很多镜像--》redis,nginx,mysql
2 docker安装和配置
# 1 linux win 安装
# 2 win:https://www.docker.com/products/docker-desktop/ 下载 docker-desktop
-一路下一步安装
# 3 centos 7.9 安装
# https://www.vmware.com/content/vmware/vmware-published-sites/cn/products/workstation-pro/workstation-pro-evaluation.html.html.html
-视频,软件:vmware ,镜像文件
# 4 创建一个centos 7.9的虚拟机,在这个基础上讲docker
# 5 如果之前装过,卸载
# yum remove docker docker-common docker-selinux docker-engine
# rm -rf /var/lib/docker
yum update # 更新yum仓库
# 6 安装
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum install docker-ce -y
# 7 查看安装的版本
docker --version
# 8 目前我们只装了 docker-ce,
-只有:c 和 s端
-没有docker-compose
-没有图形化解码
-跟docker-destop的区别
# 9 启动docker
systemctl status docker
systemctl start docker
# 10 镜像--》从远程下载下来的---》hub.docker.com -->仓库下的
-有非常多镜:可以搜索,搜到以后,镜像有不同版本
-目前:访问不到了,拉去不下来
-配置:国内镜像站:阿里云
-https://cr.console.aliyun.com/cn-shanghai/instances/mirrors
sudo mkdir -p /etc/docker # 如果有,就不需要创建了
vi /etc/docker/daemon.json
# 加入
{
"registry-mirrors": ["https://x1566319.mirror.aliyuncs.com"]
}
# 按 esc
# 输入 :wq 敲回车
# 保存退出
systemctl daemon-reload # 重新加载docker配置
systemctl restart docker # 重启docker
先创建在克隆
3 docker镜像操作
3.1 镜像和容器
# 镜像:images
-一堆文件---》目前咱们从register---》下载---》放在宿主机(centos 7.9机器)
-类比:虚拟上装系统
- 操作系统文件 xx.iso--->装在虚拟机上
- 镜像你当成 xx.iso 操作系统文件
-把iso装在不同虚拟机中---》启动---》多台有操作系统的机器
# 容器:container
-镜像运行---》运行成容器
-类比:
-容器当成一个正在运行的操作系统
-一个镜像,可以运行成多个容器
# python面向对象
类:镜像
对象:实例化得到多个对象,每个对象间独立的
# 以后一个容器,你们当成 :一个操作系统+软件--》正在运行
3.2 镜像操作
# 0 搜索镜像
-去网站搜:https://hub.docker.com/
-使用命令行搜:docker search mysql
# 1 获取镜像,拉去镜像---》从register下载到本地--》阿里云镜像站--》加速拉取
docker pull mysql:5.7 # 下载mysql 5.7镜像
docker pull redis:latest # 下载redis最新的镜像
docker pull nginx:latest # 下载 nginx最新的镜像
docker pull centos:centos7 # 下载 nginx最新的镜像
# 2 查看镜像
docker images
# 3 删除镜像
docker rmi redis:latest
创建虚拟机基本配置
Unbantu
安装unbantu22.04.4版本
然后进入需要安装ssh跟关闭防火墙才能进行ssh远程连接
# 查看防火墙状态
sudo ufw status
#检查 SSH 服务状态:
sudo service ssh status
#如果 SSH 服务未安装,您可以通过以下命令安装它:
sudo apt-get update # 更新软件包列表
sudo apt-get install openssh-server
#启动 SSH 服务:
sudo service ssh start
#停止 SSH 服务:
sudo service ssh stop
#重启 SSH 服务:
sudo service ssh restart
#查看 SSH 服务的状态:
sudo service ssh status
#允许 SSH 服务通过防火墙(如果您使用的是 UFW 作为防火墙):
sudo ufw allow ssh
#如果您希望 SSH 在系统启动时自动启动,可以使用以下命令来启用它:
sudo update-rc.d ssh defaults
CentOS7.9
- 要下载镜像源