大家好,我是砸锅。一个摸鱼八年的后端开发。熟悉 Go、Lua。今天和大家一起学习 Kubernetes😊
开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 30 天,点击查看活动详情
k8s
学习 Kubernetes 最好的方式是尽快建立一个全局观和大局观,等到你对这个陌生领域的全貌有了粗略但完整的认识之后,再挑选一个自己感兴趣的方向去研究,才是性价比最高的做法
Docker
资料参考:docs.docker.com/reference/
sudo apt install -y docker.io #安装Docker Engine
sudo service docker start #启动docker服务
sudo usermod -aG docker ${USER} #当前用户加入docker组
docker version # 输出 Docker 客户端和服务器各自的版本信息
docker info # 显示当前 Docker系统相关的信息
docker ps # 列出当前系统里运行的容器
docker pull # 从外部的镜像仓库拉取镜像
docker imagges # 列出当前 Docker 所存储的所有镜像
docker rmi # 删除镜像 remove image
docker run # 运行镜像成容器
docker exec # 在容器里面执行另一个程序
docker stop # 强制停止运行中的容器
docker rm # 删除容器
敲的命令行 docker 实际是一个客户端 client,它会与 Docker Engine 里的后台服务 Docker daemon 通信,而镜像则存储在远端的仓库 Registry 里,客户端是不能直接访问镜像仓库
容器就是一个特殊的隔离环境,它能够让进程只看到这个环境里的有限信息,不能对外界环境施加影响。容器另一个功能就是给应用程序加上资源隔离,在系统里切分出一部分资源,让它只能使用指定的配额
容器和虚拟机的区别
容器隔离的实现
容器隔离是利用 Linux 在内核中为资源隔离提供的三种技术:namespace 、 cgroup、chroot
namespace 是可以创建出独立的文件系统、主机名、进程号、网络等资源空间,实现系统全局资源和进程局部资源的隔离
cgroup 是用来对进程的 CPU、内存等资源的优先级和配额限制
chroot 是用来更改进程的根目录,限制访问文件系统
容器化的应用
镜像和常见的 tar、rpm、deb 等安装包一样,都打包了应用程序,但最大的不同点在于它里面不仅有基本的可执行文件,还有应用运行时的整个系统环境。这就让镜像具有了非常好的跨平台便携性和兼容性
所谓的“容器化的应用”,或者“应用的容器化”,就是指应用程序不再直接和操作系统打交道,而是封装成镜像,再交给容器环境去运行。
常用的镜像操作
镜像的完整名字由两个部分组成,名字和标签,中间用 : 连接起来
docker run 是最复杂的容器操作命令,-it 表示开启一个交互式操作的 Shell,这样可以直接进入容器内部,就好像是登录虚拟机一样。-d 表示让容器在后台运行,这在我们启动 Nginx、Redis 等服务器程序的时候非常有用。—name 可以为容器起一个名字,方便我们查看
此文章为3月Day4学习笔记,内容来源于极客时间《Kubernetes 入门实战课》 这门课真的非常好,推荐大家看看