-
为什么要研发虚拟化技术
首先的话就是多服务跑在一个机器上风险比较大(没有虚拟化技术的时候,如果一个站点有问题被攻击就会借此影响到其它的站点系统),另外如果为了安全而去单独部署,物理成本就会上升,也会造成硬件资源的严重浪费,最后如果有迁移需求,相应的成本也会增加。
-
应运而生的虚拟化技术
受到上述的条件影响,虚拟化技术也就应运而生了,它的出现,可以大大的节约硬件成本,也可以很好的满足对系统的单独部署和像个离,同时使用虚拟化技术可以方便的扩展资源池,实现云部署化。
-
虚拟化技术的缺点
首先虚拟化相较于后面将的docker需要占用大量的资源,
我们知道的沙箱就是早期的容器技术,这里讲的docker诞生于2013年,在2017年成为主流。
-
特点
1、docker中应用之间是相互隔离的,实现的是一种类虚拟化的效果;
2、docker和物理机是共享一个内核的,还有就是docker的容器体积特别小,在使用时占用的资源特别少;
3、随着不断的发展,它可以在绝大部分主流操作系统上运行。 -
docker与虚拟化的区别
首先来讲容器就是将代码和环境的关系打包在一起的一个集合,而虚拟机则是通过在物理层面上分出来一个个的操作系统;另外相比于虚拟机,容器可以实现多个在同一台机器上,同时共享一个操作系统的内核资源,而虚拟机虽然也可以多个在同一台机器上,但是每个虚拟机都需要一个完整的操作系统;从占用资源的角度来讲容器通常一般在百兆之间,而虚拟机大多好几个G。
使用yum源下载docker安装组件
yum install --downloadonly --downloaddir=/root/dockerRPM docker # 这样下载的安装由于没有repo文件关系列表不可以自动安装,只能使用手动安装,下面是通过命令创建关系列表的命令。
创建离线包关系列表
createrepo /root/dockerRPM
开启服务查看版本
systemctl start docker docker version # 查看docker的版本docker服务器与docker客户端 docker镜像
分层
写时复制
内容寻址
联合挂载
docker仓库设置定义镜像加速器:
登陆国内的镜像网站比如阿里的(cr.console.aliyun.com)在左下角找到镜像加速器,复制属于你自己的加速器地址例如:https://230ucuo8.mirror.aliyuncs.com,然后在docker服务器修改/etc/docker/darmon.js
命令: vim /etc/docker/daemon.json
# 文件的内容
{"registry-mirros":["https://230ucuo8.mirror.aliyuncs.com"]}
之后重启docker,
systemctl restart docker
搜索镜像
docker search cnetos
下载镜像
docker pull centos
查看镜像
docker imagesdocker容器
启动镜像为容器
docker run -itd --name test1 镜像名称/镜像ID /bin/bash # 解释: -itd :i代表交互式输入 t代表可以打开容器终端 d代表守护进程 test1:代表容器的名字(自定义)
查看容器
docker ps -a # 可以查看所有容器;运行的没运行的,只要存在 docker ps # 查看运行的容器
关闭或者启动容器
docker stop 容器名字/容器ID #关闭容器 docker start 容器名字/容器ID #开启容器
进入容器
docker exec -it 容器ID /bin/bash
进入nginx容器修改首页(以nginx为例)
docker run -itd --name nginx2 -p 真机端口:容器端口 镜像id 修改nginx首页 docker exec -it ID号 /bin/bash # 进入nginx vi /usr/share/nginx/html/index.html #利用vim修改nginx首页,如果没有vim编辑器可以这样: echo 12222222>/usr/share/nginx/html/index.html 此时真机直接访问http://127.0.0.1:802,就可以看到nginx的测试页面首页
真机和容器互动的命令
容器启动的互动命令: 从真机向容器拷贝东西:docker cp 真机文件路径 容器ID:拷贝要存放的容器路径 从容器向真机拷贝东西:docker cp 容器ID:拷贝要存放的容器路径 真机文件路径 容器启动时的互动命令:直接先建立软链接 docker run -itd --name nginx2 -p 802:80 -v 真机路径: 容器路径



