当前位置: 首页 > news >正文

docker 基础语法学习,K8s基础语法学习,零基础学习

下面是关于Docker和Kubernetes的基础语法学习资料,包括一些关键概念和示例代码。

Docker 基础语法

1. 安装 Docker

首先,你需要安装 Docker。以下是不同操作系统上的安装指南:

  • Windows/Mac: 下载并安装 Docker Desktop。

  • Linux: 根据你的发行版使用包管理器安装 Docker。例如,在 Ubuntu 上:

bash

  • sudo apt-get update
    sudo apt-get install docker-ce docker-ce-cli containerd.io
    2. 基本命令
  • 启动容器

bash

docker run -it ubuntu bash
  • 这条命令会下载一个 Ubuntu 镜像并在其中启动一个交互式的 Bash shell。

  • 列出正在运行的容器

bash

docker ps

 列出所有容器(包括停止的):

bash

docker ps -a

停止容器

bash

docker stop <container_id>

移除容器

bash

docker rm <container_id>

构建镜像:

创建一个 Dockerfile 文件,然后使用以下命令构建镜像

# Dockerfile
FROM ubuntu:latest
RUN apt-get update && apt-get install -y curl
CMD ["echo", "Hello, Docker!"]

构建镜像:

bash

docker build -t my-ubuntu-image .

运行自定义镜像

bash

docker run my-ubuntu-image

查看镜像列表

bash

docker images

推送镜像到 Docker Hub:

先登录 Docker Hub

bash

docker login

然后标记镜像:

bash

docker tag my-ubuntu-image your_dockerhub_username/my-ubuntu-image

最后推送镜像:

bash

docker push your_dockerhub_username/my-ubuntu-image

Kubernetes (K8s) 基础语法

1. 安装 Minikube 或 Kind

为了在本地测试 Kubernetes,你可以使用 Minikube 或 Kind。

  • Minikube:

     

    下载并安装 Minikube。

     

    启动 Minikube

bash

minikube start

Kind:

下载并安装 Kind。

创建集群

bash

kind create cluster
2. 基本命令
  • 检查集群状态:

bash

kubectl cluster-info

获取节点信息

bash

kubectl get nodes

部署应用:

使用 YAML 文件部署一个简单的 Nginx 应用

yaml

# nginx-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:name: nginx-deploymentlabels:app: nginx
spec:replicas: 3selector:matchLabels:app: nginxtemplate:metadata:labels:app: nginxspec:containers:- name: nginximage: nginx:1.14.2ports:- containerPort: 80

应用部署文件:

bash

kubectl apply -f nginx-deployment.yaml

查看 Pod 状态

kubectl get pods

暴露服务:

 创建一个 Service 来暴露 Nginx 应用

yaml

# nginx-service.yaml
apiVersion: v1
kind: Service
metadata:name: nginx-service
spec:selector:app: nginxports:- protocol: TCPport: 80targetPort: 80type: LoadBalancer

应用服务文件:

bash

kubectl apply -f nginx-service.yaml

访问服务:

获取服务 IP 地址

bash

kubectl get services

访问服务:

bash

curl http://<service_ip>:80

删除资源:

删除 Deployment 和 Service

bash

kubectl delete deployment nginx-deployment
kubectl delete service nginx-service

示例:完整的 Docker 和 K8s 流程

1. 创建一个简单的 Web 应用

创建一个简单的 Flask 应用:

# app.py
from flask import Flask
app = Flask(__name__)@app.route('/')
def hello_world():return 'Hello, Kubernetes!'if __name__ == '__main__':app.run(host='0.0.0.0', port=5000)

创建 requirements.txt 文件:

Flask==2.0.1

2. 创建 Dockerfile
# Dockerfile
FROM python:3.9-slim
WORKDIR /app
COPY . /app
RUN pip install --no-cache-dir -r requirements.txt
CMD ["python", "app.py"]
3. 构建并推送 Docker 镜像

bash

docker build -t your_dockerhub_username/flask-app:v1 .
docker login
docker push your_dockerhub_username/flask-app:v1
4. 创建 Kubernetes 部署文件

yaml

# flask-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:name: flask-deployment
spec:replicas: 3selector:matchLabels:app: flasktemplate:metadata:labels:app: flaskspec:containers:- name: flask-containerimage: your_dockerhub_username/flask-app:v1ports:- containerPort: 5000
6. 部署到 Kubernetes

bash

kubectl apply -f flask-deployment.yaml
kubectl apply -f flask-service.yaml
7. 访问服务

bash

kubectl get services
curl http://<service_ip>:80

通过以上步骤,你已经完成了从开发、打包、部署到访问整个流程的学习。希望这些内容能帮助你更好地理解和掌握 Docker 和 Kubernetes 的基础语法!

相关文章:

docker 基础语法学习,K8s基础语法学习,零基础学习

下面是关于Docker和Kubernetes的基础语法学习资料&#xff0c;包括一些关键概念和示例代码。 Docker 基础语法 1. 安装 Docker 首先&#xff0c;你需要安装 Docker。以下是不同操作系统上的安装指南&#xff1a; Windows/Mac: 下载并安装 Docker Desktop。 Linux: 根据你的…...

【网络协议】RFC3164-The BSD syslog Protocol

引言 Syslog常被称为系统日志或系统记录&#xff0c;是一种标准化的协议&#xff0c;用于网络设备、服务器和应用程序向中央Syslog服务器发送日志消息。互联网工程任务组&#xff08;IETF&#xff09;发布的RFC 3164&#xff0c;专门定义了BSD Syslog协议的规范和实现方式。通…...

MongoDB深度解析与实践案例

MongoDB深度解析与实践案例 在当今大数据与云计算盛行的时代,NoSQL数据库以其灵活的数据模型、水平扩展能力和高性能,成为处理海量数据的重要工具之一。MongoDB,作为NoSQL数据库的杰出代表,凭借其面向文档的存储结构、强大的查询语言以及丰富的生态系统,赢得了众多开发者…...

C语言从零到精通:常用运算符完全指南,掌握算术、逻辑与关系运算

系列文章目录 01-C语言从零到精通&#xff1a;常用运算符完全指南&#xff0c;掌握算术、逻辑与关系运算 文章目录 系列文章目录前言一、C语言的起源与应用领域1.1 C语言的起源1.2 C语言的应用领域1.2.1 操作系统开发1.2.2 嵌入式系统1.2.3 编译器开发1.2.4 游戏开发与图形处理…...

ArkUI概述

鸿蒙操作系统&#xff08;HarmonyOS&#xff09;是华为公司推出的一款面向未来、面向全场景的分布式操作系统。它不仅能够支持各种不同的设备&#xff0c;从手机、平板到智能穿戴和智能家居产品&#xff0c;而且为开发者提供了一套统一的开发环境和工具链。对于想要深入鸿蒙开发…...

浅谈计算机网络03 | 现代网络组成

现代网络组成 一 、网络生态体系1.1网络生态系统的多元主体1.2 网络接入设施的多样类型 二、现代网络的典型体系结构解析三、高速网络技术3.1 以太网技术3.2 Wi-Fi技术的深度剖析3.2.1 应用场景的多元覆盖3.2.2 标准升级与性能提升 3.3 4G/5G蜂窝网的技术演进3.3.1 蜂窝技术的代…...

在线图片马赛克处理工具

在线图片马赛克处理工具&#xff0c;无需登录&#xff0c;无需费用&#xff0c;用完就走。 包括中文和英文版本 官网地址&#xff1a; https://mosaic.openai2025.com...

文件上传 分片上传

分片上传则是将一个大文件分割成多个小块分别上传&#xff0c;最后再由服务器合并成完整的文件。这种做法的好处是可以并行处理多个小文件&#xff0c;提高上传效率&#xff1b;同时&#xff0c;如果某一部分上传失败&#xff0c;只需要重传这一部分&#xff0c;不影响其他部分…...

网络安全---CMS指纹信息实战

CMS简介 CMS&#xff08;Content Management System&#xff09;指的是内容管理系统&#xff0c;如WordPress、Joomla等。CMS系统非常常见&#xff0c;几乎所有大型网站都使用CMS来管理其网站的内容。由于常见CMS的漏洞较多&#xff0c;因此黑客将不断尝试利用这些漏洞攻击CMS…...

Ubuntu 24.04 LTS 系统语言英文改中文

Ubuntu 24.04 LTS 修改软件源 Ubuntu 更改软件源 修改语言 无需输入命令&#xff0c;为Ubuntu 24.04系统添加中文智能拼音输入法 在 setting 的 system 中按下图操作 点击“Apply Changes”。需要管理员密码&#xff0c;安装完成后&#xff0c;退出登录&#xff0c;重新登…...

信创在医疗领域的应用:开启医疗信息化新时代

信创在医疗领域的应用&#xff1a;开启医疗信息化新时代 信创在医疗领域的应用&#xff1a;开启医疗信息化新时代信创医疗自助一体机杭医基于信创底座的健康医疗大数据平台厦门大学附属成功医院基于海光CPU的信创改造中科可控基于海光CPU的智慧医疗解决方案 信创在医疗领域的应…...

力扣-数组-303 区域和检索-数组不可变

解析 题目有点费解&#xff0c;大致应该是给出区间内的和&#xff0c;然后维护一个前缀和&#xff0c;为了防止越界&#xff0c;先填一个0进去&#xff0c;在构建的时候也要注意此时构建的dp的下标是i1&#xff0c;所以加的前缀和的下标是i。 代码 class NumArray { public:…...

【CSS】---- CSS 实现超过固定高度后出现展开折叠按钮

1. 实现效果 2. 实现方法 使用 JS 获取盒子的高度&#xff0c;来添加对应的按钮和样式&#xff1b;使用 CSS 的浮动效果&#xff0c;参考CSS 实现超过固定高度后出现展开折叠按钮&#xff1b;使用容器查询 – container 语法&#xff1b;使用 clamp 函数进行样式判断。 3. 优…...

二十项零信任相关的前沿和趋势性技术-MASQUE

影响力评级&#xff1a;较低 市场渗透率&#xff1a;不到目标受众的 1% 成熟度&#xff1a;孵化 定义&#xff1a;基于QUIC加密的多路复用应用程序底层 (MASQUE) 是一个 IETF 标准草案&#xff0c;可实现流量的安全传输和代理。 MASQUE全称为&#xff1a;Multiplexed Appli…...

【Docker】使用Dev Container进行开发

工作区 Dev Container 设置 新建一个文件夹 ./devcontainer 然后下面放 devcontainer.json 然后安装 vscode dev container 插件&#xff0c;然后 CtrlShiftP 启动 Container {"name": "PyTorch-Julia Development","image": "x66ccff/p…...

搭建一个基于Spring Boot的数码分享网站

搭建一个基于Spring Boot的数码分享网站可以涵盖多个功能模块&#xff0c;例如用户管理、数码产品分享、评论、点赞、收藏、搜索等。以下是一个简化的步骤指南&#xff0c;帮助你快速搭建一个基础的数码分享平台。 — 1. 项目初始化 使用 Spring Initializr 生成一个Spring …...

在线json格式化工具

在线json格式化工具,包括中文和英文版本,无需登录&#xff0c;无需费用&#xff0c;用完就走。 官网地址&#xff1a; https://json.openai2025.com 效果如下&#xff1a;...

leetcode300.最长递增子序列

给你一个整数数组 nums &#xff0c;找到其中最长严格递增子序列的长度。 子序列 是由数组派生而来的序列&#xff0c;删除&#xff08;或不删除&#xff09;数组中的元素而不改变其余元素的顺序。例如&#xff0c;[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序列。 示例 1&…...

【个人学习记录】软件开发生命周期(SDLC)是什么?

软件开发生命周期&#xff08;Software Development Life Cycle&#xff0c;SDLC&#xff09;是一个用于规划、创建、测试和部署信息系统的结构化过程。它包含以下主要阶段&#xff1a; 需求分析&#xff08;Requirements Analysis&#xff09; 收集并分析用户需求定义系统目标…...

CTE与临时表:优劣势对比及使用场景分析

在数据库开发中&#xff0c;尤其是在复杂查询和优化中&#xff0c;**公共表表达式&#xff08;CTE&#xff09;和临时表&#xff08;Temporary Table&#xff09;**是两种常用的工具。尽管它们的功能有些相似&#xff0c;都是为了处理中间结果集&#xff0c;但它们的优劣势和使…...

Kali环境变量技巧(The Environment Variable Technique Used by Kali

Kali环境变量技巧 朋友们好&#xff0c;我们今天继续更新《黑客视角下的Kali Linux的基础与网络管理》中的管理用户环境变量。为了充分利用我们的黑客操作系统Kali Linux&#xff0c;我们需要理解和善于使用环境变量&#xff0c;这样会使我们的工具更具便利&#xff0c;甚至具…...

Ubuntu 24.04 LTS linux 文件权限

Ubuntu 24.04 LTS 文件权限 读权限 &#xff1a;允许查看文件的内容。写权限 (w)&#xff1a;允许修改文件的内容。执行权限 (x)&#xff1a;允许执行文件&#xff08;对于目录来说&#xff0c;是进入目录的权限&#xff09;。 文件权限通常与三类用户相关联&#xff1a; 文…...

多个版本JAVA切换(学习笔记)

多个版本JAVA切换 很多时候&#xff0c;我们电脑上会安装多个版本的java版本&#xff0c;java8&#xff0c;java11&#xff0c;java17等等&#xff0c;这时候如果想要切换java的版本&#xff0c;可以按照以下方式进行 1.检查当前版本的JAVA 同时按下 win r 可以调出运行工具…...

AI刷题-最小替换子串长度、Bytedance Tree 问题

目录 一、最小替换子串长度 问题描述 输入格式 输出格式 输入样例 1 输出样例 1 输入样例 2 输出样例 2 解题思路&#xff1a; 问题理解 数据结构选择 算法步骤 最终代码&#xff1a; 运行结果&#xff1a; 二、Bytedance Tree 问题 问题描述 输入格式 输…...

Android 项目依赖冲突问题:Duplicate class found in modules

问题描述与处理处理 1、问题描述 plugins {id com.android.application }android {compileSdk 34defaultConfig {applicationId "com.my.dialog"minSdk 21targetSdk 34versionCode 1versionName "1.0"testInstrumentationRunner "androidx.test.run…...

Webpack简述

一、为什么要构建工具 人类喜欢书写的代码以及开发方式计算机不喜欢&#xff0c;构建工具的作用就是让人类舒舒服服写自己喜欢的代码&#xff0c;然后一打包生成计算机喜欢的代码 第一个webpack自身仅仅是将我们引入的模块打包成一个文件&#xff08;编译import&#xff09;&am…...

ARM GCC编译器

ARM GCC编译器&#xff08;GNU Compiler Collection for ARM&#xff09;是GNU项目的一部分&#xff0c;专门用于编译针对ARM架构的代码。它是一个开源的工具链&#xff0c;支持多种编程语言&#xff0c;包括C、C和汇编语言。以下是关于ARM GCC编译器的详细解释及其作用&#x…...

CSS3 3D 转换介绍

CSS3 中的 3D 转换提供了一种在二维屏幕上呈现三维效果的方式&#xff0c;主要包括translate3d、rotate3d、scale3d等转换函数&#xff0c;下面来详细介绍&#xff1a; 1. 3D 转换的基本概念 坐标系 在 CSS3 的 3D 空间中&#xff0c;使用的是右手坐标系。X 轴是水平方向&…...

关于 Cursor 的一些学习记录

文章目录 1. 写在最前面2. Prompt Design2.1 Priompt v0.1&#xff1a;提示设计库的首次尝试2.2 注意事项 3. 了解 Cursor 的 AI 功能3.1 问题3.2 答案 4. cursor 免费功能体验5. 写在最后面6. 参考资料 1. 写在最前面 本文整理了一些学习 Cursor 过程中读到的或者发现的感兴趣…...

3. 后端验证前端Token

书接上回&#xff0c;后端将token返回给前端&#xff0c;前端存入cookie&#xff0c;每次前端给后端发送请求&#xff0c;后端是如何验证的。 若依是用过滤器来实现对请求的验证&#xff0c;过滤器的简单理解是每次发送请求的时候先发送给过滤器执行逻辑判断以及处理&#xff0…...

【LLM】Openai-o1及o1类复现方法

note 可以从更为本质的方案出发&#xff0c;通过分析强化学习的方法&#xff0c;看看如何实现o1&#xff0c;但其中的核心就是在于&#xff0c;如何有效地初始化策略、设计奖励函数、实现高效的搜索算法以及利用强化学习进行学习和优化。 文章目录 note一、Imitate, Explore, …...

与“神”对话:Swift 语言在 2025 中的云霓之望

0. 引子 夜深人静&#xff0c;是一片极度沉醉的黑&#xff0c;这便于我与深沉的 macbook 悄悄隐秘于其中。一股异香袭来&#xff0c;恍惚着&#xff0c;撸码中身心极度疲惫、头脑昏沉的我仿佛感觉到了一束淡淡的微光轻洒在窗边。 我的对面若隐若现逐渐浮现出一个熟悉的身影。他…...

设计模式-单例模式

定义 保证一个类仅有一个实例&#xff0c;并提供一个访问它的全局访问点。 类图 类型 饿汉式 线程安全&#xff0c;调用效率高&#xff0c;但是不能延迟加载。 public class HungrySingleton {private static final HungrySingleton instancenew HungrySingleton();private …...

C#枚举类型携带额外数据的方法

Java里面的枚举类型可以定义很多属性&#xff0c;携带各种数据&#xff0c;然而C#里面的枚举类型只能代表数字&#xff0c;不能在枚举类型里面定义各种属性&#xff0c;导致某些应用场景使用起来不方便&#xff0c;但是可以利用C#里面的Attribute来解决这个问题。 例如&#xf…...

跨境电商使用云手机用来做什么呢?

随着跨境电商的发展&#xff0c;越来越多的卖家开始尝试使用云手机来协助他们的业务&#xff0c;这是因为云手机具有许多优势。那么&#xff0c;具体来说&#xff0c;跨境电商使用云手机可以做哪些事情呢&#xff1f; &#xff08;一&#xff09;实现多账号登录和管理 跨境电商…...

RabbitMQ-消息可靠性以及延迟消息

目录 消息丢失 一、发送者的可靠性 1.1 生产者重试机制 1.2 生产者确认机制 1.3 实现生产者确认 &#xff08;1&#xff09;开启生产者确认 &#xff08;2&#xff09;定义ReturnCallback &#xff08;3&#xff09;定义ConfirmCallback 二、MQ的持久化 2.1 数据持久…...

Mybatis plus中的BaseMapper与ServiceImpl

BaseMapper接口方法与ServiceImpl类方法的区别与联系 什么是BaseMapper&#xff1f;什么是ServiceImpl&#xff1f; BaseMapper 是 MyBatis-Plus 提供的一个基础 Mapper 接口&#xff0c;封装了常用的 CRUD 操作方法&#xff0c;如 selectById、insert、updateById、deleteBy…...

第三篇 Avaya IP Office的架构及其服务组成

所谓的架构&#xff0c;其实就是Solution,解决方案。一般就是如下几套&#xff1a; IPO primary IPO secondaryIPO primary IP500v2IPO primary IPO secondary IP500v2IPO primary IPO secondary IP500v2 Expansion Server(IP500v2,扩展)IPO primaryIPO 500v2 简单的解释…...

近红外简单ROI分析matlab(NIRS_SPM)

本次笔记主要想验证上篇近红外分析是否正确&#xff0c;因为叠加平均有不同的计算方法&#xff0c;一种是直接将每个通道的5分钟实时长单独进行叠加平均&#xff0c;另一种是将通道划分为1分钟的片段&#xff0c;将感兴趣的通道数据进行对应叠加平均&#xff0c;得到一个总平均…...

ESP32学习笔记_FreeRTOS(6)——Event and Notification

摘要(From AI): 这篇博客详细介绍了 FreeRTOS 中的事件组和任务通知机制&#xff0c;讲解了事件组如何通过位操作实现任务间的同步与通信&#xff0c;以及任务如何通过通知机制进行阻塞解除和数据传递。博客提供了多个代码示例&#xff0c;展示了如何使用事件组和任务通知在多任…...

多监控m3u8视频流,怎么获取每个监控的封面图(纯前端)

文章目录 1.背景2.问题分析3.解决方案3.1解决思路3.2解决过程3.2.1 封装播放组件3.2.2 隐形的视频div3.2.3 截取封面图 3.3 结束 1.背景 有这样一个需求&#xff1a; 给你一个监控列表&#xff0c;每页展示多个监控&#xff08;至少12个&#xff0c;m3u8格式&#xff09;&…...

ExpGCN:深度解析可解释推荐系统中的图卷积网络

一、引言 在当今信息爆炸的时代&#xff0c;推荐系统已成为电子商务和社交网络中不可或缺的工具&#xff0c;旨在为用户筛选出符合其兴趣的信息。传统的协同过滤&#xff08;CF&#xff09;技术通过挖掘用户与项目之间的交互记录来生成推荐&#xff0c;但这种方法简化了模型&a…...

ChatGPT Prompt 编写指南

一、第一原则&#xff1a;明确的意图​ 你需要明确地表达你的意图和要求&#xff0c;尽可能具体、描述性、详细地描述所需的上下文、你期望的结果等。你的要求越明确&#xff0c;越有希望获得你想要的答案。​ 糟糕的案例 ❌​ ​ 写一首关于 OpenAI 的诗。​ ​ 更好的案…...

【脑机接口数据处理】 如何读取Trode 的.rec文件 原始数据?

文章目录 函数简介文件下载函数语法基本用法带时间跳过的用法带选项参数的用法输出结构使用示例 注意事项 MATLAB中读取Trodes文件的实用函数——readTrodesFileContinuous 在处理神经科学实验数据时&#xff0c;经常会遇到Trodes格式的文件。这些文件包含了丰富的神经信号数据…...

反转字符串中的单词 II:Swift 实现与详解

网罗开发 &#xff08;小红书、快手、视频号同名&#xff09; 大家好&#xff0c;我是 展菲&#xff0c;目前在上市企业从事人工智能项目研发管理工作&#xff0c;平时热衷于分享各种编程领域的软硬技能知识以及前沿技术&#xff0c;包括iOS、前端、Harmony OS、Java、Python等…...

蓝桥杯训练—矩形面积交

文章目录 一、题目二、示例三、解析四、代码 一、题目 平面上有两个矩形&#xff0c;它们的边平行于直角坐标系的X轴或Y轴&#xff0c;对于每个矩形&#xff0c;我们给出它的一对相对顶点的坐标&#xff0c;请你编程写出两个矩形的交的面积 输入格式&#xff1a; 输入包含两行…...

如何设置HTTPS站点防御?

设置HTTPS站点防御涉及到多个层面的安全措施&#xff0c;包括但不限于配置Web服务器、应用安全头信息、使用内容安全策略&#xff08;CSP&#xff09;、启用HSTS和OCSP Stapling等。下面是一些关键的步骤来增强HTTPS网站的安全性&#xff1a; 1. 使用强加密协议和密钥交换算法…...

光谱相机如何还原色彩

多光谱通道采集 光谱相机设有多个不同波段的光谱通道&#xff0c;可精确记录每个波长的光强信息。如 8 到 16 个甚至更多的光谱通道&#xff0c;每个通道负责特定波长范围的光信息记录。这使得相机能分辨出不同光谱组合产生的相同颜色感知&#xff0c;而传统相机的传感器通常只…...

doris:导入概览

Apache Doris 提供了多种导入和集成数据的方法&#xff0c;您可以使用合适的导入方式从各种源将数据导入到数据库中。Apache Doris 提供的数据导入方式可以分为四类&#xff1a; 实时写入&#xff1a;应用程序通过 HTTP 或者 JDBC 实时写入数据到 Doris 表中&#xff0c;适用于…...

Linux 操作二:文件映射与文件状态

Linux 操作二&#xff1a;文件映射与文件状态查询 文件映射 ​ mmap是一种内存映射文件的方法&#xff0c;即将一个文件或者其它对象映射到进程的地址空间&#xff0c;实现文件磁盘地址和进程虚拟地址空间中一段虚拟地址的一一对映关系。实现这样的映射关系后&#xff0c;进程…...