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
相关推荐
Patrick_Wilson2 天前
从「改个端口」到 502:Next.js on k8s 的容器端口、Service 映射与 env 覆盖
docker·kubernetes·next.js
Suroy2 天前
DockerView-Go:用 Go 写一个终端 Docker 监控工具,顺便做了个 Web 仪表盘
docker
云恒要逆袭2 天前
运行你的第一个Docker容器
后端·docker·容器
宋均浩3 天前
# Docker 镜像瘦身实战:从 1.2G 到 80MB 的五个优化步骤
ci/cd·docker
程序员老赵4 天前
10 分钟部署 OpenCode:Docker 一键安装,浏览器打开就能用 AI 写代码(附完整命令与排错)
docker·容器·ai编程
WangMingHua1114 天前
LM Studio Docker 部署——本地大模型一键启动
docker
曲幽5 天前
别再用网页翻译看源码了!你的私人翻译神器LibreTranslate,部署避坑指南来了
python·docker·web·pot·translate·libretranslate·arogstranslate
武子康7 天前
调查研究-183 Apple container:Mac 上用轻量 VM 跑 Linux 容器,Swift 会改写本地容器体验吗?
docker·容器·apple
Alsn8610 天前
等待学习-学习目录:Docker 容器安全攻防
学习·安全·docker
程序员老赵10 天前
服务器没有桌面?Docker 跑个 Chrome,浏览器就能远程用
docker·容器·devops