1. 宿主机
1.1. 功能截图
1.2. 知识点
说明Docker
是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows 机器上。容器是完全使用沙箱机制,相互之间不会有任何接口。
Docker通过namespace实现了资源的隔离,包括UTS(主机名与域名)、IPC(信号量、消息队列和共享内存)、PID(进程)、MOUNT(挂载,即文件系统)、NETWORK(网络)和USER(用户和用户组)。通过cgroup实现了资源限制,包括CPU、内存、IO、网络等。通过写时复制实现了高效的文件操作,写时复制是指如果运行中的容器修改了一个已经存在的文件,那该文件将会从读写层下面的只读层复制到读写层,该文件的只读版本仍然存在,只是已经被读写层中该文件的副本所隐藏。
Docker的优势:
- 简化环境管理:传统的软件开发与发布环境复杂,配置繁琐,经常有开发人员问:我的代码开发环境可以运行,一旦部署到服务器上就运行不了了。以及开发环境、测试环境、生产环境,每个环节都有可能出现这样那样的问题,如果能够在各个环境中实现一键部署,就会方便很多,docker彻底解决了这个问题。
- 虚拟化更加轻量级:不同于传统的虚拟技术,比如使用VMware、VirtualBox等软件,docker拟化更加轻量级,传统的虚拟机都是先虚拟出一个操作系统,然后在操作系统上完成各种各样的配置,这样并不能充分的利用物理机的性能,docker则是容器级别的虚拟技术,它运行在操作系统之上的用户空间,所有的容器都共用一个系统内核甚至公共库,容器引擎提供了进程级别的隔离,让每个容器都像运行在单独的系统之上,但是又能够共享很多底层资源。因此docker 更为轻量、快速和易于管理。
- 程序可移植强:传统的虚拟机不同操作系统间程序移植比较困难,而docker使用镜像保存应用和应用运行所需的环境,不同的操作系统只要安装了docker,就可以通过镜像快速启动容器,所以docker可移植强。
Docker容器监控是对Docker宿主机的容器、镜像、数据卷和网络进行可视化的管理,相比于在服务器上通过命令进行操作,Docker管理操作更方便快捷。
镜像:docker镜像就是一个只读模板,比如,一个镜像可以包含一个完整的centos,里面仅安装apache或用户的其他应用,镜像可以用来创建docker容器,另外docker提供了一个很简单的机制来创建镜像或者更新现有的镜像,用户甚至可以直接从其他人那里下载一个已经做好的镜像来直接使用。
容器:docker利用容器来运行应用,容器是从镜像创建的运行实例,它可以被启动,开始、停止、删除、每个容器都是互相隔离的,保证安全的平台,可以把容器看作是一个简易版的linux环境(包括root用户权限、镜像空间、用户空间和网络空间等)和运行在其中的应用程序。
数据卷:为了实现容器与主机之间、容器与容器之间共享文件,容器中数据的持久化,将容器中的数据备份、迁移、恢复等,Docker加入了数据卷(volumes)机制。
网络:docker提供4种网络模式:
1. Host:容器将不会虚拟出自己的网卡,配置自己的IP等,而是使用宿主机的IP和端口。
2. Bridge:此模式会为每一个容器分配、设置IP等,并将容器连接到一个docker0虚拟网桥,通过docker0网桥与宿主机通信。
3. None:该模式关闭了容器的网络功能。
4. Container:创建的容器不会创建自己的网卡,配置自己的IP,而是和一个指定的容器共享IP、端口范围。
1.3. 功能详述
宿主机菜单支持Docker部署、添加、启动、停止、重启、删除、配置修改、日志查看、服务器监控和容器监控功能,部署目前支持centos和redhat操作系统。
1.3.1. 列表查看
点击宿主机菜单,展示宿主机列表。
1.3.2. 部署
点击部署按钮跳转到部署页面,支持在线部署和手动部署,支持多台服务器部署,部署过程中可以点击操作结果查看实时操作日志。
字段说明:
- 部署方式:部署方式分为在线部署和手动部署,在线部署首先需要应用服务器安装代理节点,并且以root用户启动,然后通过NTC管控台完成docker安装;手动部署适用于代理节点非root用户启动,是通过NTC管控台生成linux shell脚本,用户需要手工复制到应用服务器指定目录执行,则会在指定目录进行docker安装
- 版本:服务器的操作系统版本,目前支持centos、redhat、suse
- 部署路径:部署包下载路径,该选项只有部署方式选择在线部署时才生效
- 服务器:服务器IP列表,支持选择多台服务器部署,该选项只有部署方式选择在线部署时才生效
- 镜像仓库地址:Docker镜像仓库地址,Docker通过该地址推送和拉取镜像,目前使用Harbor作为私有镜像仓库
- 监控端口:该端口用于容器监控
1.3.3. 添加
点击添加按钮添加宿主机,如果服务器已经安装了Docker,可以使用添加功能进行添加宿主机。
字段说明:
- 宿主机IP:宿主机IP地址
- 端口:Docker外部访问端口
- 是否开启容器监控:是否开启容器监控功能,容器监控指容器CPU、内存、网络等监控,默认关闭
1.3.4. 历史
点击历史按钮可以查看对宿主机的操作历史。
1.3.5. 批量启动
选择宿主机,点击启动按钮批量启动Docker,可以点击操作结果查看操作日志。
1.3.6. 批量停止
选择宿主机,点击停止按钮批量停止Docker,可以点击操作结果查看操作日志。
1.3.7. 批量重启
选择宿主机,点击重启按钮批量重启Docker,可以点击操作结果查看操作日志。
1.3.8. 批量删除
选择宿主机,点击删除按钮批量删除Docker。
1.3.9. 配置修改
点击修改按钮,支持修改端口、容器监控配置。
1.3.10. 日志查看
点击守护进程按钮查看Docker守护进程日志。
1.3.11. 服务器监控
点击服务器监控按钮,跳转到服务器监控页面,支持服务器CPU、内存等监控、以及服务器概要信息。
1.3.12. 容器监控
点击容器监控按钮,跳转到容器监控页面。容器监控支持对宿主机的容器、镜像、数据卷和网络进行管理。包括新增、删除、启动、停止容器,构建、删除、导入、导出、推送、拉取镜像,新增、删除数据卷,新增、删除网络等功能。
大盘
点击大盘子菜单,展示容器、镜像、数据卷和网络总数,大盘还展示运行和停止的容器数,以及镜像占用磁盘大小,点击查看更多,跳转到相应的子菜单。大盘还支持对容器CPU、内存、网络等监控,并根据CPU占用情况进行排序,支持容器、镜像、数据卷磁盘占用TOP10:
容器
点击容器子菜单跳转到容器列表页面:
字段说明:
- 名称:容器名称,不能重复
- 状态:容器状态,包括创建、运行、停止、暂停状态
- 镜像:镜像的名称,容器运行使用的镜像
- 创建时间:容器创建时间
- IP地址:容器IP地址
- 映射端口:将容器内部端口映射到外部宿主机端口,因为容器是资源隔离的,宿主机无法通过容器IP和端口访问容器
新增
新增容器并启动:
字段说明:
- 名称:容器名称,不能重复
- 创建方式:支持本地镜像和镜像仓库获取,本地镜像表示使用宿主机本地镜像进行创建,镜像仓库获取表示从私有镜像仓库下载镜像进行创建
- 仓库:镜像仓库名称,支持本地私有仓库Harbor,该选项只有创建方式选择镜像仓库获取时才生效
- 镜像:创建容器使用的镜像
- 版本:创建容器使用的镜像版本,该选项只有创建方式选择镜像仓库获取时才生效
- 发布所有公开的端口:默认关闭,当开启将自动发布Dockerfile中EXPOSE的端口,将容器内部端口映射到外部宿主机随机的端口
- 端口映射:将容器内部端口映射到外部宿主机端口,支持UDP和TCP协议
- 数据卷:数据卷是将容器内数据直接映射到宿主机环境的指定文件目录之中,使容器可以持久化和共享数据,因为容器无法持久化数据,当容器删除的时候,容器中保存的数据会丢失。目前支持Volume和Bind两种,Volume是Docker官方提供的数据持久化目录,可以在不同宿主机系统间移植,Bind可以是宿主机系统的任意目录,不可移植。Volume和Bind都可以进行读写和只读挂载,只读挂载表示容器内无法对挂载的目录进行写操作
- 网络:选择容器运行的网络
启动容器
启动一个或多个容器。
停止容器
停止一个或多个容器,发送SIGTERM信号,应用程序优雅退出,容器可以在退出前做一些保存状态和处理当前请求等操作。
强制终止容器
强制终止一个或多个容器,发送SIGKILL信号,应用程序直接退出。
重启容器
重启一个或多个容器。
暂停容器
暂停一个或多个容器,作用是挂起容器中的所有进程来实现作业控制。
恢复容器
恢复一个或多个暂停中的容器。
删除容器
删除一个或多个容器,删除的时候如果勾选是否删除与容器关联的数据卷,则删除容器的时候,容器挂载的匿名数据卷(Dockerfile挂载数据卷时只写容器内的路径,没有写容器外的路径)也一起删除。
容器概览
点击容器名称跳转到容器概览页面,展示容器信息,包括容器ID、名称、IP地址、状态、创建时间和开始时间等,容器细节包括镜像、端口配置、环境变量、标签、重启策略等,点击镜像跳转到镜像详情页面:
修改容器名称
点击修改按钮修改容器名称。
创建镜像
您可以从此容器创建镜像,这允许您备份重要数据或保存有用的配置。 之后,您将能够根据此镜像启动另一个容器。
更新重启策略
支持修改容器重启策略,重启策略是指容器停止后,是否重新启动容器的一个策略,目前有always、no、on-failure、unless-stopped四种策略。always:表示不管遇到什么错误都进行重新启动容器,no表示不管遇到什么错误都不重启,on-failure表示容器以非0状态码退出时重新启动容器,可以设置重启失败的次数,unless-stopped表示无论退出码是什么,始终重新启动容器,不过当docker守护进程启动时,如果容器之前已经为停止状态,就不尝试启动它。
监控
点击监控子菜单展示容器监控信息和进程信息,监控信息包括已使用内存大小、已使用缓存大小、CPU使用率、网络发送大小和网络接收大小:
字段说明:
- UID:用户编号
- PID:进程编号
- PPID:父进程编号
- C:CPU使用的资源百分比
- STIME:进程启动时间
- TTY:该进程是在哪个终端机上面运作,若与终端机无关,则显示 ?
- TIME:该进程实际使用 CPU 运作的时间
- CMD:进程实际运行命令
日志
点击日志子菜单,展示容器日志页面:
字段说明:
- 自动刷新:每3秒自动刷新日志,默认开启
- 显示时间戳:是否显示时间戳,默认关闭
- 过滤时间:只展示指定时间范围的日志,目前支持全部日志、最近一天、最近4小时、最近1小时和最近10分钟
- 过滤行:过滤显示指定行数日志,默认100行,输入小于等于零时查询所有日志,大于零时显示指定行数日志
控制台
点击控制台子菜单展示控制台页面,进入容器控制台:
字段说明:
- 控制台:通过命令连接容器控制台,目前支持/bin/bash、/bin/sh和/bin/ash
- 使用自定义命令:是否使用自定义命令连接容器控制台,默认关闭
- 用户:使用哪个用户名连接控制台,默认使用root用户
- 密码:用户密码
检查
点击检查子菜单展示容器详细信息,支持树结构和JSON格式展示:
数据卷
点击数据卷子菜单,展示当前容器挂载的数据卷和宿主机目录,点击数据卷名称,跳转到数据卷详情页面:
网络
点击网络子菜单,展示当前容器所在网络的列表,点击网络名称跳转到网络详情页面:
字段说明:
- 网络:网络名称
- IP地址:网络IP地址
- 网关:网络的网关IP
- MAC地址:网络的物理地址
加入网络
容器可以选择加入相应网络
断开连接
容器可以脱离相应的网络
镜像
点击镜像子菜单跳转到镜像列表页面:
字段说明:
- ID:镜像编号,不能重复
- 是否使用:该镜像是否有容器正在使用
- 标签:镜像标签,docker使用标签标识镜像版本,标签可以有多个
- 大小:镜像大小
- 创建时间:镜像创建的时间
构建
点击构建按钮跳转到构建页面,支持在线编写和手动上传Dockerfile来构建镜像,并且可以查看构建结果:
字段说明:
- 名称:镜像名称,相当于镜像标签,可以输入多个名称
- 仓库:如果Dockerfile里基础镜像本地不存在,可以从选择的仓库下载
- 构建方式:镜像构建方式,支持在线构建和手动构建两种方式,在线构建表示在线编写Dockerfile进行构建,手动构建表示手动上传包含Dockerfile的tar包进行构建
- 选择文件:选择上传包含Dockerfile的tar包,该选项只在手动构建的时候有效
- 文件路径:tar包内Dockerfile文件所在的相对路径,该选项只在手动构建的时候有效
导出
点击导出按钮从宿主机导出镜像到本地,支持导出多个镜像。
导入
点击导入按钮从本地导入镜像到宿主机,支持tar和tar.gz格式。
删除
点击删除按钮删除镜像,支持删除多个镜像,并且正在使用的镜像无法删除。
拉取镜像
输入镜像名称和选择仓库,点击拉取镜像按钮,可以从镜像仓库拉取镜像到宿主机,支持本地私有仓库Harbor。
镜像详情
点击镜像编号跳转到镜像详情页面,可以查看镜像标签、镜像细节、Dockerfile详细信息和镜像层等信息,支持标记镜像(给镜像打标签),并且支持推送、拉取和删除指定标签镜像:
推送镜像
点击推送按钮推送指定标签镜像到指定镜像仓库:
拉取镜像
点击拉取按钮拉取指定标签镜像到宿主机。
删除镜像
删除指定标签镜像。
标记镜像
给镜像打标签。
数据卷
点击数据卷子菜单跳转到数据卷列表页面:
字段说明:
- 名称:数据卷名称,不能重复
- 是否使用:该数据卷是否有容器正在使用
- 范围:数据卷作用访问,目前支持local,即当前宿主机
- 挂载:当前数据卷挂载的宿主机目录
- 创建时间:数据卷创建时间
新增
点击新增按钮跳转到新增页面,输入名称等信息新增数据卷:
字段说明:
- 名称:数据卷名称,不能重复
- 驱动:数据卷驱动程序,目前支持local,指数据卷只能用于本地宿主机,其他云厂商可能提供一些数据卷驱动程序,可以将卷存储在远程主机上
- 驱动程序选项:数据卷驱动的配置选项
删除
点击删除按钮删除数据卷,支持删除多个。
数据卷详情
点击数据卷名称跳转到数据卷详情页面,可以查看数据卷详情,以及当前数据卷被哪些容器使用,点击容器名称可以跳转到容器详情页面:
网络
点击网络子菜单跳转到网络列表页面:
字段说明:
- 名称:网络名称,不能重复
- ID:网络编号
- 驱动器:网络驱动器
- 范围:网络作用范围,目前支持local和swarm,local表示作用于当前宿主机,swarm表示作用于集群
- 子网:子网就是将主机地址的几位用来做网络地址,来将网络划分为若干子网
- 网关:网关实质上是一个网络通向其他网络的IP地址,实现不同网络之间的相互通信
新增
点击新增按钮跳转到新增页面:
字段说明:
- 名称:网络名称,不能重复
- 驱动:网络驱动,目前支持bridge、host、null、overlay。host:容器将不会虚拟出自己的网卡,配置自己的IP等,而是使用宿主机的IP和端口;bridge:此模式会为每一个容器分配、设置IP等,并将容器连接到一个docker0虚拟网桥,通过docker0网桥与宿主机通信;null:该模式关闭了容器的网络功能;overlay:swarm集群网络,支持容器跨主机通信。
- 驱动程序选项:网络驱动的配置选项
- 子网:子网就是将主机地址的几位用来做网络地址,来将网络划分为若干子网,非必输项
- 网关:网关实质上是一个网络通向其他网络的IP地址,实现不同网络之间的相互通信,非必输项
- IP范围:可以在输入的子网里指定具体的网络IP范围
删除
点击删除按钮删除网络,支持删除多个网络。
网络详情
点击网络名称跳转到网络详情页面,可以查看网络详情、网络选项,以及当前网络中有哪些容器,点击容器名称可以跳转到容器详情页面:
断开连接
点击断开连接按钮,容器可以脱离当前网络。