找回密码
 立即注册
首页 业界区 安全 上班这么多年终于搞懂了Docker香在了哪里了 ...

上班这么多年终于搞懂了Docker香在了哪里了

戟铵腴 6 小时前
本人是.net开发,之前工作就一直是web 和Windows service的IIS进行部署,没有什么问题
自己平时也了解 linux多香,docker多牛逼,但因为入门门槛大,配置麻烦,没有图形界面,没有学进去。
后来基于AI,我编写了一个门户项目,于是准备借助AI尝试用linux部署,感觉docker没有必要,就没有使用那个方案,自己安装环境,然后执行。
但是因为我装的是centos 7,这东西已经停止维护了(我当年学的时候就是装的这个系统)
刚好,安装的时候执行脚本,需要安装node.js 18的时候,提示失败了,我就通过AI了解到已经停止维护
我迁移到了Ubuntu 22 ,然后执行,于是也想尝试docker部署方式。
部署的过程中不需要自己往Ubuntu安装环境,于是我基于实际项目,研究到底什么区别,终于想到了一个非常形象的类比。
终于摸通了大家这么喜欢docker到底是为了什么,这些知识在我实践之前也都看过,但就是没有亲自操作。
所以之前一直是脑雾状态,知道哪好,但不知道具体在哪里。
由于比较乱,我让AI给我整理下,但例子是我的思路,希望给新入门的程序员一点帮助,鼓励大家早日亲自实践Linux的docker
 

三种部署模式深度对比

1. Windows Server 模式:写字楼里的“精装办公室”

在 Windows 上部署,你通常会经历以下过程:

  • 部署动作:运行 mysql-installer.msi 安装数据库;在控制面板里开启 IIS;手动安装 .NET Runtime
  • 项目状态:你的 API 作为一个“Windows 服务”后台运行。
  • 缺点

    • 资源浪费:为了跑这三个小组件,你不得不维持一个庞大的图形化界面,内存白白浪费。
    • 环境污染:如果你想装第二个项目,发现它需要不同版本的 .NET,可能会导致系统全局变量冲突。
    • 不可移植:如果你换一台 Windows 服务器,你得把上面的点击、配置流程重新手动走一遍,极易出错。


2. Native Linux 模式:宅基地上的“自建小菜店”

直接在 Ubuntu 上 apt install 各种软件:

  • 部署动作:敲命令安装 mysql-server、nginx。手动配置 /etc/nginx/sites-available。
  • 项目状态:通过 systemd 脚本来管理 API 的启动和自启。
  • 你的感悟(权限大、品类固定)

    • 确实权限极大,你可以修改系统的任何一个参数。
    • 局限性:你依赖的是 Ubuntu 官方仓库这个“小菜店”。如果菜店里的 Nginx 版本太旧,或者你想装两个版本的 MySQL,配置起来会让你头大(各种路径冲突、端口占用)。
    • 部署感:你更像是一个老农,必须亲自盯着土质(操作系统环境)和害虫(依赖冲突)。


3. Docker 模式:智慧城市的“标准集装箱超市”

这就是你现在的选择:在 Linux 底层上运行 Docker。

  • 部署动作:写一个 docker-compose.yml(说明书),然后 up。
  • 项目状态:每一个组件都在自己独立的“集装箱”里,自带所有的依赖。
  • 你的感悟(专供超市、独立起来)

    • 标准化:Docker Hub 这个“超级超市”里有全球最好的“预制菜”(官方镜像)。你不需要在 Linux 菜店里找,直接从超市拿最适合你版本的集装箱。
    • 环境隔离:MySQL 8.0 住在 A 箱子,.NET 7 住在 B 箱子。哪怕箱子外面(Linux 宿主机)的环境再乱,箱子里永远是干净的。
    • 极致权限:你依然拥有 Linux 的大权限,但你把这些权限用来“调遣”集装箱,而不是去费劲地修水管。



来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

相关推荐

您需要登录后才可以回帖 登录 | 立即注册