总结下当前初步了解和用到的容器化工具和相关命令。作为一个学习手册未来逐步扩充吧。

Docker

工具简介

个人理解:docker是将应用打包成轻量并易于移植的容器中的工具,并且它也负责管理容器的生命周期。
概念
大部分摘抄自https://yeasy.gitbook.io/docker_practice/basic_concept/image
镜像: 一种特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。
容器: 容器是镜像运行时的实体。相当于面向对象编程里的类和实例。
仓库: 用于存储和分发镜像。类似于github的仓库之于git。

日常使用-查询/下载

1
2
3
4
5
6
7
8
# 拉取镜像  
docker pull xxx-image:version  
  
# 保存镜像到指定目录  
docker save xxx-image:version > location  
  
# 导入指定镜像  
docker load < xxx-image.tar.gz  

Kubernetes

工具简介

个人理解:k8s是为了更方便的管理容器的平台。在虚拟化容器(e.g Docker)的基础上,k8s可批量管理和自动化部署、更新容器。
概念
Pod: 是可以在 Kubernetes 中创建和管理的、最小的可部署的计算单元。
Node: Kubernetes 通过将容器放入在节点(Node)上运行的 Pod 中来执行工作负载。节点可以是一个虚拟机或者物理机器,取决于所在的集群配置。 每个节点包含运行 Pod 所需的服务; 这些节点由控制面负责管理。
Namespace: 在 Kubernetes 中,名字空间(Namespace) 提供一种机制,将同一集群中的资源划分为相互隔离的组。
k8s架构图

日常使用-查询

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
# 获取k8s中的所有名字空间  
kubectl get namespaces  
  
# 获取k8s中的所有节点,节点可能是虚拟机或物理机器,可通过此来查询某个物理机挂载资源的实时状态等  
kubectl get nodes  
  
# 查询Pod 如果直接输入`get pods`, 实际是查询命名空间default中的pods  
kubectl get pods (--namespace xxx)  
  
# 详细输出某个pod的信息  
kubectl describe pod aaa --namespace xxx  
  
# 查询该pod的日志信息  
# 查询后100条  
kubectl logs -f aaa --namespace xxx --tail=100  
# 查询所有日志  
kubectl logs -f aaa --namespace xxx --tail=-1  
启动、部署