Docker 介绍
什么是 Docker
Docker 使用 Google 公司推出的 Go 语言 进行开发实现,基于 Linux 内核的 cgroup,namespace,以及 OverlayFS 类的 Union FS 等技术,对进程进行封装隔离,属于 操作系统层面的虚拟化技术。由于隔离的进程独立于宿主和其它的隔离的进程,因此也称其为容器。最初实现是基于 LXC,从 0.7 版本以后开始去除 LXC,转而使用自行开发的 libcontainer,从 1.11 开始,则进一步演进为使用 runC 和 containerd。
Docker 架构:
runc
是一个 Linux 命令行工具,用于根据 OCI容器运行时规范 创建和运行容器。
containerd
是一个守护程序,它管理容器生命周期,提供了在一个节点上执行容器和管理镜像的最小功能集。
Docker 和传统虚拟化方式的比较:
传统虚拟机技术是虚拟出一套硬件后,在其上运行一个完整操作系统,在该系统上再运行所需应用进程;
容器内的应用进程直接运行于宿主的内核,容器内没有自己的内核,而且也没有进行硬件虚拟,比传统虚拟机更为轻便。
为什么要用 Docker
1:更高效的利用系统资源
2:更快速的启动时间
3:一致的运行环境
4:持续交付和部署
5:更轻松的迁移
6:更轻松的维护和扩展
对比传统虚拟机总结
特性 | 启动 | 硬盘使用 | 性能 | 系统支持量 |
---|---|---|---|---|
容器 | 秒级 | 一般为 MB | 接近原生 | 单机支持上千个容器 |
虚拟机 | 分钟级 | 一般为 GB | 若于 | 一般几十个 |
参考:
Docker 安装
Docker 命令
基础命令
命令 | 命令描述 |
---|---|
info | 显示 Docker 详细的系统信息 |
version | 显示 docker 客户端和服务端版本信息 |
inspect | 查看容器或镜像的配置信息, 默认为 json 数据 |
events | 实时打印服务端执行的事件 |
镜像命令
命令 | 命令描述 |
---|---|
images | 查看本地镜像(列出本地所有镜像) |
inspect | 查看镜像详情 |
search | 查找镜像 |
tag | 修改镜像 tag |
history | 显示镜像每层的变更内容 |
rmi | 删除本地镜像 |
pull | 获取镜像 |
push | 推送镜像到仓库 |
login | 登录第三方仓库 |
logout | 退出第三方仓库 |
save | 打包本地镜像, 使用压缩包来完成迁移 |
load | 导入镜像压缩包 |
commit | 将容器保存为镜像 |
build | 使用 Dockerfile 构建镜像 |
import | 导入本地容器快照文件为镜像 |
容器命令
命令 | 命令描述 |
---|---|
create | 根据镜像生成一个新的容器 |
start | 启动一个新的容器 |
run | 创建、启动容器并执行相应的命令 |
rename | 重命名容器名 |
ps | 查看运行中的容器 |
top | 显示容器的运行进程 |
stop | 关闭容器 |
kill | 强制关闭容器 |
restart | 重启容器 |
pause | 暂停容器 |
unpause | 恢复暂停的容器 |
exec | 在已运行的容器中执行命令 |
attach | 进入运行中的容器, 显示该容器的控制台界面。 |
logs | 打印容器的控制台输出内容 |
port | 容器端口映射列表 |
rm | 删除已停止的容器 |
diff | 展示容器相对于构建它的镜像内容所做的改变 |
export | 导出容器到本地快照文件 |
cp | 在容器和宿主机之间复制文件 |
wait | 阻塞当前命令直到对应的容器被关闭, 容器关闭后打印结束代码 |
资源命令
命令 | 命令描述 |
---|---|
stats | 显示容器硬件资源使用情况 |
update | 更新容器的硬件资源限制 |
system | 管理系统资源 |
参考:
Docker 镜像
网络
存储
7.Docker Compose
Docker Compose 的文档:
https://docs.docker.com/compose/overview/
相关文档资料:
文档信息
- 本文作者:Zhang jinmiao
- 本文链接:http://zhangjinmiao.github.io/docker/2020/06/16/docker.html
- 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)