Docker 与 k8s

虚拟机技术,使得程序能够有个相对独立的运行环境和资源,但是用过虚拟机的都知道,虚拟机镜像太大,动则几个 GB、几十 GB,运行启动也比较缓慢。

随着技术的发展,另一个虚拟技术出现了就是 docker , docker 由 go 语言开发并开源的虚拟化容器技术。跟虚拟机功能相同,但相比于虚拟机,容器较小,只有几十 MB , 启动速度较快。

容器 vs 虚拟机

1. 容器是一个应用程序,运行在主机操作系统上,是基于应用层面的虚拟化;

2. VM 是基于物理层面的虚拟,共享物理资源,每个VM 有自己的操作系统;

3. 每个容器都作为一个独立的进程运行在用户空间;

4. hypervisor 技术使得一个机器运行多个 VM 成为了可能;

5. 容器比较小,通常大小在几十 MB,占用资源较少,一个 VM 或主机上可以运行几十甚至上百个容器。

6. VM 比较大,通常在几十 GB, 占用资源较少,通常一个办公电脑运行几个虚拟机就已经要爆掉了。        

Docker

概念

镜像:通过提前编写的 dockerfile 文件构建出来一个文件,里面包含了你程序运行的所有环境和依赖包。

远程仓库:docker hub 是官方提供的开放仓库,你可以将自己的镜像 push 上去,供异地使用。当然公司内部也可以搭建自己的镜像仓库。

容器:镜像(本地生成的或者从仓库 pull 下来的)启动后,就会生成一个容器,并且容器的状态是启动的。

镜像和容器的关系可以理解为程序和进程的关系。

基本命令

docker build -t name:tag .
docker exec --user root -it container /bin/bash
docker run -d --privileged=true --name=xxx -p 80:80 -p 3307:3306 dev/mysql:latest
docker update --restart=always 【container_id】
docker ps -a -q
docker stop container
docker rm container
docker ps -a|awk '{print $1}'|grep -v CONTAINER |xargs docker rm
docker network inspect net1
docker inspect container
docker network connect net1 container
docker container stats $(docker container ps --format={{.Names}})

容器编排 K8S

当你的服务比较多的时候,单个的管理每个容器就会带来很大的工作量,这个时候就需要容器编排工具来替你管理。官方提供的编排工具是 swarm , 但是用起来不是很好用,于是又有好心人开发了 Kubernets, 简称 k8s。

容器编排工具提供了很多功能,比如 故障切换、热部署、快速伸缩、自动回滚等。

本地搭建 k8s 单机群命令:

minikube start
minikube dashboard
kubectl create deployment hello-node --image=k8s.gcr.io/echoserver:1.4
kubectl get deployments
kubectl get pods
kubectl get events
kubectl expose deployment hello-node --type=LoadBalancer --port=8080
kubectl get services
minikube service hello-node
kubectl scale -n default deployment nginx-deployment --replicas=2

容器编排可视化

通过手写 yaml 文件来进行编排比较繁琐,而且面对大规模的部署会比较容易出错,官方提供了 dashboard , 但是功能比较简单,于是又有好心人开发了可视化的编排工具: kuboard 。

有了这个神器, 运维变得刚简单高效。


原创不易,如果觉得有用,请随手 分享、在看~

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

【非典型Coder】

赏个鸡腿吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值