docker和kubernetes(k8s)

docker是什么

运行程序需要环境,不同的环境,程序运行的结果就不一样。将程序打包给其它客户端使用时,客户端需要自己配置相应的环境。我们将程序和环境一起打包给其它客户端,客户端可直接运行程序。docker容器作为程序和操作系统中间层,让程序依赖dockers容器中的环境,即可正常编译运行。

dockerfile是什么

从操作系统到应用服务的命令清单就是dockerfile。

容器镜像

docker build docker软件会按照dockersfile的内容构建环境,最终将环境和程序打包成类压缩包的文件,这个文件就是容器镜像。

Registry是什么

类似github仓库,负责管理镜像仓库的推拉能力的服务就是docker Register.

官方仓库为dockersHub,清华大学的tuna。

容器

docker run 将pull下来的文件解压并运行。独立的运行环境+程序就是一个容器,一个操作系统可以跑多个容器,这些容器之间是互相独立的。使用namespace能力让他看起来就像一个独立虚拟操作系统一样。

docker容器架构

使用的经典的client-server架构, client:docker-cli,server:docker-daemon。

docker-daemon:分为docker-server和Engine,docker-server本质是http服务器,接收到API后,将任务分发给Engine,Engine生成多个job执行具体的命令。

容器部署

在部署多容器时,可以使用yaml文件部署好要执行的内容。

docker-compose up 命令解析yaml文件,将容器们一键按顺序部署,就完成一整套服务的部署。

Docker Swarm 一整套服务在多台服务器上的集群部署问题,某应用在a服务器坏了,就将该应用在服务器上重新部署一套,实现迁移还能根据需要对应用做扩缩容。

docker和k8s的关系

k8s:容器编排引擎,在多台node的服务器上调度Pod进行部署和扩缩容,每个Pod内部可以含有多个container。container可以看成一个服务进程。k8s和Docker Swarm 是竞品。Pod和docker-compose做的事情本质是一样的。

相关推荐
我没有开挂1 小时前
旧 docker 版本通过 nvkind 搭建虚拟多节点 gpu 集群的坑
运维·docker·容器
小鸡,啄米2 小时前
centos9安装docker 配置docker代理
运维·docker·容器
oceanweave2 小时前
【K8S学习之生命周期钩子】详细了解 postStart 和 preStop 生命周期钩子
学习·kubernetes
遇见火星3 小时前
jenkins流水线常规配置教程!
运维·docker·jenkins
LunarCod4 小时前
Ubuntu使用Docker搭建SonarQube企业版(含破解方法)
linux·运维·服务器·ubuntu·docker·开源·sonarqube
ZHOU_WUYI7 小时前
使用 Docker 部署 React + Nginx 应用教程
nginx·react.js·docker
小锋学长生活大爆炸8 小时前
【教程】Docker更换存储位置
运维·docker·容器
gnufre9 小时前
Kubernetes 1.28 无 Docker 运行时环境下的容器化构建实践:Kaniko + Jenkins 全链路详解
kubernetes·jenkins·kaniko
川石教育12 小时前
测试工程师如何学会Kubernetes(k8s)容器知识
云原生·容器·kubernetes·kubernetes容器·kubernetes教程
iRayCheung13 小时前
Kind方式部署k8s单节点集群并创建nginx服务对外访问
nginx·kubernetes·kind