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
英文地址,請注明出處:http://en.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…