1 docker介绍
1.1 什么是虚拟化
在计算机中,虚拟化(英语:Virtualization)是一种资源管理技术,是将计算机的各种实体资源,如服务器、网络、内存及存储等,予以抽象、转换后呈现出来,打破实体结构间的不可切割的障碍,使用户可以比原本的组态更好的方式来应用这些资源。这些资源的新虚拟部份是不受现有资源的架设方式,地域或物理组态所限制。一般所指的虚拟化资源包括计算能力和资料存储
在实际的生产环境中,虚拟化技术主要用来解决高性能的物理硬件产能过剩和老的旧的硬件产能过低的重组重用,透明化底层物理硬件,从而最大化的利用物理硬件 对资源充分利用
虚拟化技术种类很多,例如:软件虚拟化、硬件虚拟化、内存虚拟化、网络虚拟化(vip)、桌面虚拟化、服务虚拟化、虚拟机等等。
# 虚拟化技术名词
# kvm,vmware :软件--》虚拟化软件---》操作系统上装了这个软件后---》虚拟化出一台台机器
# openstack :web管理页面---》对虚拟化的机器进行管理---》创建,销毁,增加 机器
# 阿里飞天 :阿里自研的类似于 openstack的东西
# docker :接下来要学习,容器技术
# k8s :容器管理,容器编排
公司购买了很多台实体服务器---——》 装k8s 装docker
1.2 什么是Docker
Docker 是一个开源项目,诞生于 2013 年初,最初是 dotCloud 公司内部的一个业余项目。它基于 Google 公司推出的 Go 语言实现。 加了 Linux 基金会,遵从了 Apache 2.0 协议,项目代码在上进行维护。
docker 容器管理
-docker swarm
-k8s
Docker 的基础是 Linux 容器(LXC)等技术
1.3 docker 和传统虚拟机比较
1.资源占用太多
2.冗余步骤多
3.启动很
1.服务器资源利用率高
2.比较轻量化
3.打包镜像测试,一键运行
比较Docker和虚拟机技术不同:
1.传统虚拟机,虚出一条硬件,运行一个完整的操作系统,然后在这个系统上安装和运行软件
2.容器内的应用之间运行在 宿主机的内容,容器是没有自己的内核的,也没有虚拟我们的硬件,所以久轻便了
3.每个容器间是互相隔离的,每个容器内都有属于自己的文件系统,互不影响
4.安全性,docker的安全性更弱,
5.与虚拟机相比,docker隔离性更弱,docker属于进程之间的隔离,虚拟机可实现系统级别隔离
7docker创建时秒级的,docker的快速迭代性,无论是开发、测试、部署都可以节约大量时间
1.4 docker 架构
- c 端:用户操作,输入命令
- s端:接收用户命令,执行
-c、s通信,使用http协议,遵循restful规范
-mysql:tcp---》自定义的
-redis:tcp---》自定义的
1 client:客户端,输入命令
2 服务端:
containers:容器
images:镜像--》从注册中心下来下来的
3 register:注册中心
-放了很多镜像--》redis,nginx,mysql
2 docker 安装和配置
10.0.0.110
root
123
finalshell:免费的
xshell :只能win用,收费
命令窗口:git bash创建
git bash里 :ssh root@10.0.0.110 输入密码连接上即可
finalshell: 图形化界面链接
-地址
-用户名
-密码
-卸载:
yum remove docker docker-common docker-selinux docker-engine
rm -rf /var/lib/docker
-安装
yum update
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
- 验证
docker -v
systemctl status docker
systemctl start docker
systemctl restart docker
systemctl stop docker
sudo mkdir -p /etc/docker
vi /etc/docker/daemon.json
{
"registry-mirrors": ["https://x1566319.mirror.aliyuncs.com"]
}
systemctl daemon-reload
systemctl restart docker
2.5 镜像和容器
-一堆文件---》目前咱们从register---》下载---》放在宿主机(centos 7.9机器)
-类比:虚拟上装系统
- 操作系统文件 xx.iso--->装在虚拟机上
- 镜像你当成 xx.iso 操作系统文件
-把iso装在不同虚拟机中---》启动---》多台有操作系统的机器
-镜像运行---》运行成容器
-类比:
-容器当成一个正在运行的操作系统
-一个镜像,可以运行成多个容器
类:镜像
对象:实例化得到多个对象,每个对象间独立的
3 docker镜像操作
-去网站搜:https://hub.docker.com/
-使用命令行搜:docker search mysql
docker pull mysql:5.7
docker pull redis:latest
docker pull nginx:latest
docker pull centos:centos7
docker images
docker rmi redis:latest
3.1 注册并登录到远程仓库
-登录进入可以看到你开源的项目
-登录进入:就能看到你传的镜像
-0 登录
docker login
-1 给镜像打个标签
docker tag 本地镜像名:标签 你的名字/镜像名字:标签
docker tag redis:latest liuqingzheng/rredis:vv1
-2 上传到远程仓库
docker push liuqingzheng/rredis:vv1
3 docker容器操作
docker run -di --name=centos77 centos:centos7
docker ps
docker ps -a
docker ps -l
docker start id/名字
docker stop 7d5e
docker stop `docker ps -q`
docker rm 容器id
docker ps
docker ps -a
docker start
docker stop
docker exec -it 容器id /bin/bash
docker exec -it 90fd0665494f /bin/bash
-不是在宿主机上装
-容器中
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通