Docker/历史演进,核心功能,相关工具

1)服务器按部署方式划分,如下:

・单机

・传统的实体机集群:不使用虚拟化或容器化,将应用和中间件直接部署在多台实体机上,通过负载均衡分发流量;优点是 性能最高,架构最简单,最稳定,缺点是 资源利用率低,发布效率低。适用于 不常更新的传统应用。

・虚拟机集群:多台虚拟机组成,通过负载均衡分发流量。占用内存,CPU资源的损耗大,体积大,启动慢,运维成本高;仅在隔离性要求高的场景使用。

・容器化的实体机集群:容器直接部署在多台实体机组成,通过负载均衡分发流量。避免了虚拟机集群的缺点,是面向互联网应用,实现快速迭代的主流部署方式。
・可编排性的容器化集群:当实体机数量较多,或需要实现弹性扩展时,Docker Compose不便操作,则需要K8S管理Docker

・Serverless:例如:AWS的Fargate,Lambda

2)Docker核心功能是

・Build(构建):通过Dockerfile定义环境,将环境打包成镜像(Image)

・Ship(分发):将Image推送到镜像仓库(Registry),如:Harbor

・Run(运行):基于Image创建容器(Container),也就是Image的运行实例。

**3)**适合打包的环境对象:无状态(不存数据),要频繁发布,要弹性扩展

应用/中间件 适用性 Comment
jvm,node.js等运行平台 必须
各类自研应用和脚本,及其使用中的依赖库 必须
Apache,Nginx 建议
Kong等网关 建议
Tomcat,Jetty等轻型Web服务器 建议
Redis 谨慎 单节点可Docker,集群时要结合StatefulSet,有一定风险。
各类MQ,Kafka 谨慎 高吞吐,大数据量时禁止
Elasticsearch 谨慎 高吞吐,大数据量时禁止
WebLogic等重型Web服务器 谨慎 体积大,启动慢
各类数据库 禁止 重数据

3)相关工具

・桌面版docker :https://www.docker.com/products/docker-desktop/

・服务器版:https://docs.docker.com/engine/install/#server

※远程连接客户端

工具名称 图形化 特点和优点 缺点或不足 适用场景
OpenSSH 仅命令行 Linux,Windows10以上均内置OpenSSH,便于临即时性使用ssh。 操作性差 临时性使用
xShell 有界面 主要支持SSH,SFTP,X11协议;运行Linux和Docker命令 商业付费,仅支持Windows,不能文件传输 企业级首选
WinSCP+PuTTY 有界面 WinSCP是SFTP文件传输工具;PuTTY是SSH终端 不适合多台主机,功能操作的便捷性弱 预算有限,又有Security限制
FinalShell 有界面 相当于WinSCP和PuTTY的组合,操作便捷性上有小优化 中国产,基于内置的jre,内存占用大 中国的运维人员
MobaXterm 有界面 远程全能工具箱,比xShell支持更多协议,例如:RDP,VNC等 内存占用大,界面复杂 全场景应用
VS Code的Remote -- SSH 有界面 把整个远程服务器编程本地开发环境 不如本地流程,绕过版本管理,不建议。 只能在远端服务器上调试,查问题等少量场景

※Docker生态中,常用相关工具

工具名称 运行环境 作用 Comment
Docker Engine 各Linux服务器 运行Docker 核心组件有:用户交互CLI,守护进程等核心引擎dockerd,容器生命周期管理containerd等
Docker Desktop 本地Win/Mac 本地开发调试 编辑Dockerfile实现打包;商用收费,平替品是Podman
Docker Hub ー 公共仓库 默认仓库
Harbor 管理型服务器 私有仓库 Registry是Docker官方自带的极简私有仓库。
Docker Compose 各服务器 单机多容器编排 V1版需单独安装,V2版已包含在Docker Engine中
Kubernets Master+多Worker 多机多容器的分布式编排 Rancher能够简化K8S的使用难度
Portainer 管理型服务器 Docker CLI操作的Web图形化工具
Nginx 管理型服务器 管理服务器与业务服务器间的网关 避免直接暴露
Jenkins 管理型服务器 自动化 GitLab CI,GitHub Actions可直接内置容器构建 BuildKit镜像构建,Trivy或Grype镜像扫描
Prometheus+Grafana 管理型服务器 日志监控
xShell 本地 查看,操作服务器和Docker
相关推荐
guo_wen_qiang18 小时前
docker的备份与迁移
运维·docker·容器
cpolar技术支持1 天前
外网测试机的异常传不回内网?自托管 Sentry,用 cpolar 打通错误上报链路
python·nginx·docker·cpolar·sentry
MrSYJ1 天前
别人再问你路由表是啥,这篇文章摔它脸上
docker·云原生·kubernetes
羑悻1 天前
穿越Docker内核迷雾:揭秘镜像分层存储的叠加态与卷挂载的多维空间穿梭技术
后端·docker·容器
筑梦之路1 天前
docker-compose方式部署kafka集群(Kraft方式)——筑梦之路
docker·容器·kafka
JavaPub-rodert1 天前
Docker 镜像地址总失效?基于 DockerHub 项目用 GitHub Actions 做一个自动检测状态页
docker·容器·github
天衍四九-1 天前
Docker 进阶实战系列(一):容器镜像安全,最小镜像与非 Root 运行
安全·docker·eureka
天衍四九-1 天前
Docker进阶实战系列(二):容器日志深度治理|驱动配置、自动切割、磁盘爆满彻底解决
docker·容器·eureka
sbjdhjd1 天前
云安全 | Docker 容器逃逸复盘(一):从隔离边界到运行时链路,如何确认自己身处容器
网络安全·docker·云原生·容器·kubernetes·云计算·云安全
溪语流沙1 天前
【Web全栈进阶】PostgreSQL上手:Docker跑库 + 把早报站从SQLite迁过去
前端·docker·postgresql