Docker的概述
docker是一种开源的容器引擎
驱动应用在容器中运行的工具
容器引擎 (docker podman rocket container)
Docker和虚拟机的区别
特性 | Docker容器 | 虚拟机 |
启动速度 | 秒级 | 分钟级 |
计算机能力损害 | 几乎无 | 损耗50%左右 |
性能 | 接近原生 | 弱于 |
系统支持量(单机) | 上千个 | 几十个 |
隔离性 | 资源隔离/限制 | 完全隔离 |
容器是共享内核,而虚拟器是拥有独立的内核
docker本质就是宿主机的一个进程
docker是通过namespace来实现资源隔离的
docker是通过cgroup来实现资源限制的
docker是通过写时复制技术(copy-on-write)来实现高效文件操作
***namespace的六项隔离(很重要)
namespace | 系统调用参数 | 隔离内容 |
UTS | CLONE_NEWWUTS | 主机名与域名 |
IPC | CLONE_NEWWUTS | 信号量、消息队和共享内容 |
PID | CLONE_NEWWUTS | 进程编号 |
NETWORK | CLONE_NEWWUTS | 网络设备、网络栈、端口等 |
MOUNT | CLONE_NEWWUTS | 挂载点(文件系统) |
USER | CLONE_NEWWUTS | 用户和用户组(3.8以后的内核才支持) |
Dokcer的核心概念
- 镜像
Docker的镜像就是创建容器的基础(不光是应用程序,也可以是一个操作系统)
- 容器
docker的容器就是从镜像创建的运行实例
- 仓库
docker仓库是用来集中保存镜像的地方
Docker安装
docker version 查看docker的版本信息
doker info 查看当前docker应用的详细信息
#搜索镜像
docker search 关键字
#获取镜像
docker pull 仓库名称[:标签]
#查看本地镜像
docker images
#镜像加速
登录自己的阿里云
docker 启动失败我们可以选择
- 查看docker inspect <镜像ID>
- 查看docker logs查看docker的日志文件
docker rmi <镜像名/ID> [-f] 删除镜像
如果想要删除镜像,必须要将标签全部删除
如果要删除镜像可以通过ID号删除
-f 强制删除
docker save -o 导出文件名.tar 镜像和标签
以文件的形式传输
docker load -i【或者<】镜像文件
docker login
docker push 仓库名/镜像名:标签
容器操作命令
docker create [选项] 镜像
-i:让容器开启标准输入
-t:让docker分配一个伪终端 tty
-it:合起来实现和容器交互的作用,运行一个交互式会话
docker ps -a
启动容器
docker start 【容器名称】
停止容器
docker stop 【容器名称】
删除容器
docker rm 【-f】
批量删除
docker rm $(docker ps -aq)
docker rmi $(docker images -q)
总结: