首页 > 其他分享 >Kubernetes 入门实战

Kubernetes 入门实战

时间:2023-05-29 19:24:54浏览次数:35  
标签:实战 容器 入门 Kubernetes Linux 镜像 docker Docker 隔离

Kubernetes 入门实战

Docker

Docker 的安装

安装 docker.io 为了方便,你还可以使用 -y 参数来避免确认,实现自动化操作:

sudo apt install -y docker.io #安装Docker Engine

Docker Engine 不像 Docker Desktop 那样可以安装后就直接使用,必须要做一些手工调整才能用起来,所以你还要在安装完毕后执行下面的两条命令:

sudo service docker start #启动docker服务
sudo usermod -aG docker ${USER} #当前用户加入docker组

验证 Docker 是否安装成功了,使用的命令是 docker version 和 docker info

  • docker version 会输出 Docker 客户端和服务器各自的版本信息

  • docker info 会显示当前 Docker 系统相关的信息,例如 CPU、内存、容器数量、镜像数量、容器运行时、存储文件系统等等

Docker的使用

注意,所有的 Docker 操作都是这种形式:以 docker 开始,然后是一个具体的子命令,之前的 docker version 和 docker info 也遵循了这样的规则。你还可以用 help 或者 --help 来获取帮助信息,查看命令清单和更详细的说明。

docker ps #列出当前系统里运行的容器就像我们在 Linux 系统里使用 ps 命令列出运行的进程一样
docker pull #从外部的镜像仓库(Registry)拉取一个 busybox 镜像(image),你可以把它类比成是 Ubuntu 里的“apt install”下载软件包
docker images #它会列出当前 Docker 所存储的所有镜像
Docker 的架构
img

刚才我们敲的命令行 docker 实际上是一个客户端 client ,它会与 Docker Engine 里的后台服务 Docker daemon 通信,而镜像则存储在远端的仓库 Registry 里,客户端并不能直接访问镜像仓库。

Docker client 可以通过 build、pull、run等命令向 Docker daemon 发送请求,而 Docker daemon 则是容器和镜像的“大管家”,负责从远端拉取镜像、在本地存储镜像,还有从镜像生成容器、管理容器等所有功能。

容器的本质

容器,就是一个特殊的隔离环境,它能够让进程只看到这个环境里的有限信息,不能对外界环境施加影响

为什么要隔离

对于 Linux 操作系统来说,一个不受任何限制的应用程序是十分危险的。这个进程能够看到系统里所有的文件、所有的进程、所有的网络流量,访问内存里的任何数据,那么恶意程序很容易就会把系统搞瘫痪,正常程序也可能会因为无意的 Bug 导致信息泄漏或者其他安全事故。虽然 Linux 提供了用户权限控制,能够限制进程只访问某些资源,但这个机制还是比较薄弱的,和真正的“隔离”需求相差得很远。

使用容器技术,我们就可以让应用程序运行在一个有严密防护的“沙盒”(Sandbox)环境之内

容器技术的另一个本领就是为应用程序加上资源隔离,在系统里切分出一部分资源,让它只能使用指定的配额

要点
  • 容器就是操作系统里一个特殊的“沙盒”环境,里面运行的进程只能看到受限的信息,与外部系统实现了隔离。
  • 容器隔离的目的是为了系统安全,限制了进程能够访问的各种资源。
  • 相比虚拟机技术,容器更加轻巧、更加高效,消耗的系统资源非常少,在云计算时代极具优势。
  • 容器的基本实现技术是 Linux 系统里的 namespace、cgroup、chroot。
熟练使用Docker
img

标签:实战,容器,入门,Kubernetes,Linux,镜像,docker,Docker,隔离
From: https://www.cnblogs.com/neil-pu/p/17441406.html

相关文章

  • Shell脚本实战(一)
    1、前言Shell脚本的语法规则不复杂,在Linux系统很重要,一些操作可以整合成一个shell脚本,节省时间,本文不去讲述shell的语法规则,相关的资料网上很多,只需要多使用即可,此处记录在实际工作中用到shell脚本,积累一些常用的用法,后续也可以参考。2、功能点因为项目原因,c++代码体系非常庞大......
  • Apache Flume教程_编程入门自学教程_菜鸟教程-免费教程分享
    教程简介Flume是Apache下面的一个分布式组件,它提供高效,可靠的收集,整合,传输日志数据的服务。Flume可以理解成一个管道,它连接数据的生产者和消费者,它从数据的生产者(Source)获取数据,保存在自己的缓存(Channel)中,然后通过Sink发送到消费者。它不对数据做保存和复杂的处理(可以做简单......
  • Java学习 - 入门
    Java三大版本JavaSE:标准版JavaME:嵌入式开发JavaEE:E企业级开发JDK、JRE、JVMJDK:Java开发者工具JRE:Java运行时环境JVM:Java虚拟机Java开发环境卸载JDKJava安装目录:环境变量-JAVA_HOME删除java安装目录删除JAVA_HOME删除path下关于java目录运行cmdjava-version......
  • Javase入门|史上最好用的截图工具Snipaste
    在学习Java的时候,有时候老师操作的比较快,通过截图的方式将老师的操作保存下来,以便后期的操作。另外截图之后的图片也可以用于笔记的记录,在笔记当中最好采用图文并茂的方式,这样更加利于知识的回顾。这篇文章详细介绍下snipaste截图工具的下载安装及使用,配合视频效果更佳动力节点老杜......
  • pytest从入门到精通笔记
    一、pytest简介pytest是一个非常成熟的全功能的Python测试框架,比unittest更灵活,容易上手。主要有以下几个特点:1.简单灵活,容易上手2.支持参数化3.能够支持简单的单元测试和复杂的功能测试,还可以用来做selenium/appnium等自动化测试、接口自动化测试(pytest+requests)4.pytest具......
  • 功能测试面试没人要了!软件自动化测试如何入门?
    对于我来说,我做的是web端的测试,做测试也有好几个年头了,每次都是使用手工测试的话,一直是做重复性的工作,既枯燥又繁琐,所以我在两年前自己使用java语言写了一系列的自动化测试脚本,利用的框架是java+testng+reportng+selenium,这个框架在项目中基本可用了。不过最近由于公司项目发生变......
  • Netty实战(七)
    (EventLoop和线程模型)一、什么是线程模型简单地说,线程模型指定了操作系统、编程语言、框架或者应用程序的上下文中的线程管理的关键方面。在早期的Java语言中,我们使用多线程处理的主要方式无非是按需创建和启动新的Thread来执行并发的任务单元,这种在高负载下表现得很原......
  • 软件架构入门
    软件架构(softwarearchitecture)就是软件的基本结构。合适的架构是软件成功的最重要因素之一。大型软件公司通常有专门的架构师职位(architect),只有资深程序员才可以担任。O'Reilly出版过一本免费的小册子《SoftwareArchitecturePatterns》(PDF),介绍了五种最常见的软件架构,是非常好......
  • Maven学习总结(一)——Maven入门
    一、Maven的基本概念Maven(翻译为"专家","内行")是跨平台的项目管理工具。主要服务于基于Java平台的项目构建,依赖管理和项目信息管理。1.1、项目构建项目构建过程包括【清理项目】→【编译项目】→【测试项目】→【生成测试报告】→【打包项目】→【部署项目】这几个步骤,这六个......
  • Spark入门看这篇就够了(万字长文)
    本文已收录至Github,推荐阅读......