docker和虚拟机的区别
– 左边为虚拟机,右边为docker环境 –
Server :物理机服务器
Host OS :构建的操作系统
Hypervisor :一种虚拟机软件,装了之后才能虚拟化操作系统
Guest OS :虚拟化的操作系统
Bins/Libs :执行命令、工具
App A :构建的软件
Docker Engine :跳过虚拟化内核的步骤,直接使用宿主机内核
从图片中我们可以清楚的了解到,相比于 Docker,虚拟机更加的臃肿。
优势(省去了虚拟化内核的步骤)
- 节省资源(CPU、内存)
- 秒级启动
- 轻量级方案(同样一台服务器可以启动几百个docker,但是不能启动几百个虚拟机)
劣势
- 隔离性、安全性相比虚拟机更弱(比如,如果其中一个容器将内核给"搞坏了",那所有的容器就都无法正常工作了)
- 某些情况下服务器会挑内核(eg.编译c++)
Docker的作用
- 搭建测试环境
- 搭建各类基础服务
- 搭建测试执行环境(自动化测试脚本执行环境)
docker安装-Mac
1.在官网下载后解压
https://www.docker.com/get-started
注意点击docker打开后没跳出客户端,不是docker有问题,其实docker已经打开,在导航栏顶部有个小图标
2.配置阿里云加速器
加速器可以自己创建阿里云账号获取,也可以获取网上的
比如:
https://s2nni63l.mirror.aliyuncs.com
将加速器地址配置在如图位置:
docker常用命令
基本命令
- docker版本信息
docker version
- docker系统信息
docker info
镜像管理
- 查看所有镜像
docker images
- 搜索镜像
docker search xxx
- 拉取下载
docker pull xxx:latest
- 导出
docker save xxx > xxx.tar
- 导入
docker load < xxx.tar
- 删除
docker rmi xxx:latest
- 更改镜像名
docker tag xxx:版本号 yyy:版本号
- 查看镜像创建历史
docker history xxx
容器管理
- 运行容器
docker run -d --name=yyy xxx:版本号 ping 114.114.114.114
-d:后台运行
--name= yyy: 给容器取名
- 查看运行的容器
docker ps
- 显示所有的容器,包括未运行的
docker ps -a
- 查看容器中运行的进程
docker top xxx
- 查看资源占用
docker stats xxx
- 开始/重新开始/停止/杀死 容器
docker start/restart/stop/kill xxx
- 暂停/重新运行 容器
docker puase/unpuase xxx
- 强制删除容器
docker rm -f xxx
-f 表示强制删除,可删除正在运行中的容器
容器管理
- 执行命令
docker exec -it xxx ls
-it:进入容器 并且不退出
- 复制文件
docker cp xxx
- 查看日志
docker log -f xxx
- 查看容器/镜像的元信息
docker inspect xxx
- 查看容器内文件结构
docker diff xxx