嵌入式开发交流网论坛

标题: 疫情期间,Docker让运维人员雪上加霜 [打印本页]

作者: xubo鹤    时间: 2020-11-29 08:11
标题: 疫情期间,Docker让运维人员雪上加霜
2020疫情原因,公司业绩下滑严重,于是决定给团队瘦身,经过激烈的讨论,最终决定先从运维人员开始。原因是我们引入了Docker。它部署项目相比之前要简单许多。运维的工作完全可以被开发替代。当然我们小公司是这样的状况,大公司还是专人专责。最近也看到公司招聘程序员,熟悉Docker的优先录用。
为什么docker如此受欢迎?我们先看看它与传统的虚拟机有什么不同?
[attach]54992[/attach]vm
这样有一些缺点,比如

[attach]54993[/attach]
很多厂商都实现了容器技术,但由于Docker太流行,以至于很多时候用Docker指代容器。从上图可以看出,Docker实现了App级别的隔离,不像传统虚拟机是系统级别的隔离。每一个app都封装到容器里,直接运行在宿主机上,比运行在虚拟机上的程序更快。
在虚拟机的时候,我们每部署一个应用都需要把相应的参数,数据库配置等打包给运维人员。只要少一项就会出现大大小小的问题。但是Docker就不会出现这样的情况。只要文件打包好直接发给运维人员,可以实现一次打包,多处运行。
总之就是Docker能够将应用程序与基础架构分开,从而可以快速交付软件。
话不多说,我们先让Docker跑起来,爽完后再谈它的原理。
yum install -y yum-utils device-mapper-persistent-data lvm2yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repoyum makecache fastyum -y install docker-ceservice docker start# docker versionClient: Docker Engine - CommunityVersion: 19.03.13API version: 1.40Go version: go1.13.15Git commit: 4484c46d9dBuilt: Wed Sep 16 17:03:45 2020OS/Arch: linux/amd64Experimental: falseServer: Docker Engine - CommunityEngine:Version: 19.03.13API version: 1.40 (minimum version 1.12)Go version: go1.13.15Git commit: 4484c46d9dBuilt: Wed Sep 16 17:02:21 2020OS/Arch: linux/amd64Experimental: falsecontainerd:Version: 1.3.7GitCommit: 8fba4e9a7d01810a393d5d25a3621dc101981175runc:Version: 1.0.0-rc10GitCommit: dc9208a3303feef5b3839f4323d9beb36df0a9dddocker-init:Version: 0.18.0GitCommit: fec3683# docker pull hello-worldUsing default tag: latestlatest: Pulling from library/hello-world0e03bdcc26d7: Pull complete Digest: sha256:8c5aeeb6a5f3ba4883347d3747a7249f491766ca1caa47e5da5dfcf6b9b717c0Status: Downloaded newer image for hello-world:latestdocker.io/library/hello-world:latest# docker run hello-worldHello from Docker!This message shows that your installation appears to be working correctly.To generate this message, Docker took the following steps:1. The Docker client contacted the Docker daemon.2. The Docker daemon pulled the "hello-world" image from the Docker Hub.(amd64)3. The Docker daemon created a new container from that image which runs theexecutable that produces the output you are currently reading.4. The Docker daemon streamed that output to the Docker client, which sent itto your terminal.To try something more ambitious, you can run an Ubuntu container with:$ docker run -it ubuntu bashShare images, automate workflows, and more with a free Docker ID:http://hub.docker.com/For more examples and ideas, visit:http://docs.docker.com/get-started/到目前为止,已经有一个Docker容器hello-world就运行起来了。本文我们不具体讲Docker实操,只是简单体验一下Docker的温度。实操部分可以去看官网,或者等我下一篇文章的更新。
Docker采用的是常见的client-server模式。Client端负责接受用户输入的命令,像我们前面提到的docker pull、run等。真正执行命令的是Server端,也就是docker的守护线程daemon。client和daemon之间通过rest api进行通信,它们可以在同一台机器也可以在不同机器。类比mysql的client和server。
[attach]54994[/attach]Docker架构
除了client和server,我们还看到Registry,它是储存Docker镜像的地方,类比maven的仓库。Docker Hub是官方提供的中央仓库,当然可以创建自己的私库。
这里我们有必要理解几个概念
开始我们提到Docker是基于LXC实现的,本质上是宿主机上一个进程。

回到标题,为什么Docker让运维人员雪上加霜呢?当然也是对一部分人而言。疫情期间,本身裁员就很严重。再加上Docker简单的部署,让很多运维人员失业,尤其在小公司,疫情期间第一批被裁掉的就是他们。技术的革新一定会牺牲一部分的利益。当人工智能真正来临的时候,你我的工作还保得住吗?让我们拭目以待。




欢迎光临 嵌入式开发交流网论坛 (http://www.dianzixuexi.com/bbs/) Powered by Discuz! X3.2