请稍侯

理解 docker 和 kubernets

06 May 2025

理解 docker 和 kubernets

Cgroup 限制 docker 容器资源占用
深入理解docker和kubernetes(k8s): https://www.bilibili.com/video/BV1iML4zdEFq

docker 容器的文件系统 overlay2

docker commit

docker commit 是 Docker 中的一个命令,主要用于将当前容器的状态保存为一个新的镜像。 作用

  1. 保存容器状态:将正在运行的容器(包括文件修改、配置变更等)提交为一个新的镜像,便于后续重用或分发。
  2. 临时调试或备份:适用于调试场景或保存容器被入侵后的现场状态 [2]。
  3. 快速生成镜像:无需编写完整的 Dockerfile,直接通过容器变更生成镜像(但官方推荐优先使用 Dockerfile 定制镜像)。

基本用法
语法: docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
常用选项:

  • -a:指定镜像作者(如 -a "Your Name")。
  • -m:添加提交信息(如 -m "Added Apache")。

示例:

  1. 提交容器为镜像并命名: docker commit -m "Installed Python" 39eaa5aa7332 python3.6-dev
    其中 39eaa5aa7332 是容器 ID,python3.6-dev 是新镜像名称 [7]。

  2. 带作者信息提交:docker commit -a "Aomine" -m "Updated config" my_container my_image:latest

注意事项

  • 非推荐做法docker commit 生成的镜像缺乏透明性和可维护性,长期定制镜像应使用 Dockerfile [2][10]。
  • 镜像分层:每次 commit 会生成一个新镜像层,可能导致镜像臃肿 [6]。

docker 网络

docker bridge 网络(查看命令:sudo brctl show

使用veth将network==none的busybox容器,接入dockerO bridge,并连通

使用 ip netns exec <container sandboxkey> netstat -ntpl 命令将宿主机上的工具在容器的network namespace 中运行

Kubernetes 集群组件

安装 kubernets 包管理器:brew install helm
helm 官网
artifacthub 一个类似 docker hub 的 pod 包分发社区.