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 的基础语法!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/66367.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/66367.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【逆境中绽放:万字回顾2024我在挑战中突破自我】

&#x1f308;个人主页: Aileen_0v0 &#x1f525;热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 ​&#x1f4ab;个人格言:“没有罗马,那就自己创造罗马~” 文章目录 一、引言二、个人成长与盘点情感与心理成长学习与技能提升其它荣誉 三、年度创作历程回顾创作内容概…

职场沟通与行为

职场沟通与行为 引言 在职场上&#xff0c;你是否曾遇到过困惑的沟通&#xff1f;是否对同事的行为有过疑虑&#xff1f;这不仅是个别现象&#xff0c;而是我们这个时代工作文化中的普遍问题。许多职场的摩擦&#xff0c;来自沟通不畅或是行为不当。那么&#xff0c;如何才能…

【Linux 重装】Ubuntu 启动盘 U盘无法被识别,如何处理?

背景 U盘烧录了 Ubuntu 系统作为启动盘&#xff0c;再次插入电脑后无法被识别 解决方案&#xff08;Mac 适用&#xff09; &#xff08;1&#xff09;查找 USB&#xff0c;&#xff08;2&#xff09;格式化&#xff08;1&#xff09;在 terminal 中通过 diskutil list 查看是…

中职网络建设与运维ansible服务

ansible服务 填写hosts指定主机范围和控制节点后创建一个脚本&#xff0c;可以利用简化脚本 1. 在linux1上安装系统自带的ansible-core,作为ansible控制节点,linux2-linux7作为ansible的受控节点 Linux1 Linux1-7 Yum install ansible-core -y Vi /etc/ansible/hosts 添加…

数据库服务体系结构

1. 数据库服务应用配置 服务进行配置有什么作用&#xff1f; 实现服务运行启动 实现某些功能 应用配置有三种方式&#xff1f; 利用编译安装进行配置 编写配置文件信息 ,.默认的配置文件: /etc/my.cnf 利用启动命令参数配置信息&#xff0c;mysqld_safe --skip-grant-tables --…

Langchain+FastApi+Vue前后端Ai对话(超详细)

一、引入 首先可以先看下作者的文章 FastApi相关文章&#xff1a;创建最简单FastApi的项目Vue相关文章&#xff1a;最简单的aixos二次封装Langchain相关文章&#xff1a;如何使用LangSmith跟踪deepseek模型 二、后端搭建 1 项目文件结构 routers&#xff1a;存放api接口se…

如何在不暴露MinIO地址的情况下,用Spring Boot与KKFileView实现文件预览

在现代Web应用中&#xff0c;文件预览是一项常见且重要的功能。它允许用户在不上传或下载文件的情况下&#xff0c;直接在浏览器中查看文件内容。然而&#xff0c;直接将文件存储服务&#xff08;如MinIO&#xff09;暴露给前端可能会带来安全风险。本文将介绍如何在不暴露MinI…

简历_使用优化的Redis自增ID策略生成分布式环境下全局唯一ID,用于用户上传数据的命名以及多种ID的生成

系列博客目录 文章目录 系列博客目录WhyRedis自增ID策略 Why 我们需要设置全局唯一ID。原因&#xff1a;当用户抢购时&#xff0c;就会生成订单并保存到tb_voucher_order这张表中&#xff0c;而订单表如果使用数据库自增ID就存在一些问题。 问题&#xff1a;id的规律性太明显、…

Jira中bug的流转流程

Jira中bug的状态 1. 处理Bug的流程2. bug状态流转详述bug的状态通常包括 1. 处理Bug的流程 2. bug状态流转详述 bug的状态通常包括 未解决 1. 测试人员创建一个bug&#xff0c;填写bug的详细信息&#xff0c;如概要、bug级别、复现步骤、现状、预期结果等 2. 定位bug&#x…

Linux的几个基本指令

文章目录 一、几个基本指令1、ls 指令注意&#xff01; 2、pwd命令3、touch 指令4、mkdir 指令注意&#xff01;注意&#xff01; 5、cd 指令注意&#xff01; 6、cp 指令 今天我们学习Linux下的几个基本指令&#xff0c;本篇是在Xshell环境下执行的。 一、几个基本指令 1、…

软件工程师欧以宁:引领无人机导航与物联网安全的技术革新

在科技日新月异的今天,软件工程师欧以宁凭借卓越的技术能力和前瞻性的创新思维,成为了无人机自主导航和物联网安全领域的佼佼者。作为一名深耕技术前沿的专家,欧以宁不仅推动了无人机导航技术的突破性进展,还为智能家居和物联网的安全架构提供了全新的解决方案。她的研究成果,以…

数据库基础练习1(创建表,设置外键,检查,不为空,主键等约束)安装mysql详细步骤

安装MySQL详细步骤 1. 下载 MySQL 安装程序 访问 MySQL 官方网站&#xff1a;MySQL Downloads。在下载页面&#xff0c;选择 "MySQL Community (GPL) Downloads"。在 "MySQL Community Server" 部分&#xff0c;根据你的操作系统&#xff08;Windows&…

laravel中请求失败重试的扩展--Guzzle

背景 开发过程中&#xff0c;跟外部接口对接时&#xff0c;很常见的要考虑到失败重新的情况&#xff0c;这里记录一下我用的失败重试的情况&#xff0c; 重试方法 1、使用 Laravel 的 HTTP 客户端和异常处理 结合异常处理和重试逻辑 use Illuminate\Support\Facades\Http;…

ThinkPHP 8的一对多关联

【图书介绍】《ThinkPHP 8高效构建Web应用》-CSDN博客 《2025新书 ThinkPHP 8高效构建Web应用 编程与应用开发丛书 夏磊 清华大学出版社教材书籍 9787302678236 ThinkPHP 8高效构建Web应用》【摘要 书评 试读】- 京东图书 使用VS Code开发ThinkPHP项目-CSDN博客 编程与应用开…

工业网口相机:如何通过调整网口参数设置,优化图像传输和网络性能,达到最大帧率

项目场景 工业相机是常用与工业视觉领域的常用专业视觉核心部件&#xff0c;拥有多种属性&#xff0c;是机器视觉系统中的核心部件&#xff0c;具有不可替代的重要功能。 工业相机已经被广泛应用于工业生产线在线检测、智能交通,机器视觉,科研,军事科学,航天航空等众多领域 …

java使用poi-tl自定义word模板导出

文章目录 概要整体架构流程创建word模板核心代码导出结果 概要 在软件开发领域&#xff0c;自定义Word模板的使用是导出格式化数据的一种常见做法。poi-tl&#xff08;Apache POI Template Language&#xff09;作为一款基于广受认可的Apache POI库的Word模板引擎&#xff0c;…

IDEA2023版中TODO的使用

介绍&#xff1a;TODO其实本质上还是注释&#xff0c;只不过加上了TODO这几个字符&#xff0c;可以让使用者快速找到。 注意&#xff1a;在类、接口等文件中&#xff0c;注释是使用// 即&#xff1a;// TODO 注释内容 在配置文件中&#xff0c;注释是使用# 即&#xff1a;# TO…

项目练习:若依管理系统字典功能-Vue前端部分

文章目录 一、情景说明二、若依Vue相关代码及配置1、utils代码2、components组件3、api接口代码4、Vuex配置5、main.js配置 三、使用方法1、html部分2、js部分 一、情景说明 我们在做web系统的时候&#xff0c;肯定会遇到一些常量选择场景。 比如&#xff0c;性别&#xff1a;…

LabVIEW开发X光图像的边缘检测

在医疗影像处理中&#xff0c;X光图像的分析对于骨折、肿瘤等病变的检测非常重要。X光图像中包含许多关键信息&#xff0c;然而&#xff0c;由于图像噪声的干扰&#xff0c;直接从图像中提取有用的特征&#xff08;如骨折的边缘&#xff09;变得非常困难。边缘检测作为图像处理…

【CC2640R2F】香瓜CC2640R2F之SPI读写W25Q80

本文最后修改时间&#xff1a;2022年01月08日 10:45 一、本节简介 本节以simple_peripheral工程为例&#xff0c;介绍如何使用SPI读写W25Q80&#xff08;外部flash&#xff09;。 二、实验平台 1&#xff09;CC2640R2F平台 ①协议栈版本&#xff1a;CC2640R2 SDK v1.40.00.4…