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

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

Docker 基础语法

1. 安装 Docker

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

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

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

bash

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

bash

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

  • 列出正在运行的容器

bash

bash 复制代码
docker ps

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

bash

bash 复制代码
docker ps -a

停止容器

bash

bash 复制代码
docker stop <container_id>

移除容器

bash

bash 复制代码
docker rm <container_id>

构建镜像:

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

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

构建镜像:

bash

bash 复制代码
docker build -t my-ubuntu-image .

运行自定义镜像

bash

bash 复制代码
docker run my-ubuntu-image

查看镜像列表

bash

bash 复制代码
docker images

推送镜像到 Docker Hub:

先登录 Docker Hub

bash

bash 复制代码
docker login

然后标记镜像:

bash

bash 复制代码
docker tag my-ubuntu-image your_dockerhub_username/my-ubuntu-image

最后推送镜像:

bash

bash 复制代码
docker push your_dockerhub_username/my-ubuntu-image

Kubernetes (K8s) 基础语法

1. 安装 Minikube 或 Kind

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

  • Minikube:

    下载并安装 Minikube

    启动 Minikube

bash

bash 复制代码
minikube start

Kind:

下载并安装 Kind

创建集群

bash

bash 复制代码
kind create cluster
2. 基本命令
  • 检查集群状态:

bash

bash 复制代码
kubectl cluster-info

获取节点信息

bash

bash 复制代码
kubectl get nodes

部署应用:

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

yaml

bash 复制代码
# nginx-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
  labels:
    app: nginx
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.14.2
        ports:
        - containerPort: 80

应用部署文件:

bash

bash 复制代码
kubectl apply -f nginx-deployment.yaml

查看 Pod 状态

bash 复制代码
kubectl get pods

暴露服务:

创建一个 Service 来暴露 Nginx 应用

yaml

bash 复制代码
# nginx-service.yaml
apiVersion: v1
kind: Service
metadata:
  name: nginx-service
spec:
  selector:
    app: nginx
  ports:
    - protocol: TCP
      port: 80
      targetPort: 80
  type: LoadBalancer

应用服务文件:

bash

bash 复制代码
kubectl apply -f nginx-service.yaml

访问服务:

获取服务 IP 地址

bash

bash 复制代码
kubectl get services

访问服务:

bash

bash 复制代码
curl http://<service_ip>:80

删除资源:

删除 Deployment 和 Service

bash

bash 复制代码
kubectl delete deployment nginx-deployment
kubectl delete service nginx-service

示例:完整的 Docker 和 K8s 流程

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

创建一个简单的 Flask 应用:

python 复制代码
# 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
bash 复制代码
# 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

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

yaml

bash 复制代码
# flask-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: flask-deployment
spec:
  replicas: 3
  selector:
    matchLabels:
      app: flask
  template:
    metadata:
      labels:
        app: flask
    spec:
      containers:
      - name: flask-container
        image: your_dockerhub_username/flask-app:v1
        ports:
        - containerPort: 5000
6. 部署到 Kubernetes

bash

bash 复制代码
kubectl apply -f flask-deployment.yaml
kubectl apply -f flask-service.yaml
7. 访问服务

bash

bash 复制代码
kubectl get services
curl http://<service_ip>:80

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

相关推荐
Lester_11017 分钟前
嵌入式学习笔记 - STM32 U(S)ART 模块HAL 库函数总结
笔记·学习
芯动力小子9 分钟前
MCU开发学习记录17* - RTC学习与实践(HAL库) - 日历、闹钟、RTC备份寄存器 -STM32CubeMX
单片机·学习·实时音视频
白云千载尽13 分钟前
ip与mac-数据包传输过程学习
学习·tcp/ip·macos
lichuangcsdn20 分钟前
【springcloud学习(dalston.sr1)】Zuul路由访问映射规则配置及使用(含源代码)(十二)
学习·spring cloud·hystrix
ZHOU_WUYI21 分钟前
使用Docker部署React应用与Nginx
nginx·react.js·docker
虾球xz3 小时前
游戏引擎学习第292天:实现蛇
c++·学习·游戏引擎
黄鹂绿柳5 小时前
Vue+Vite学习笔记
vue.js·笔记·学习
牛奔8 小时前
Docker配置远程连接
运维·docker·云原生·容器·eureka
985小水博一枚呀9 小时前
【AI大模型学习路线】第二阶段之RAG基础与架构——第七章(【项目实战】基于RAG的PDF文档助手)技术方案与架构设计?
人工智能·学习·语言模型·架构·大模型
在未来等你9 小时前
互联网大厂Java求职面试:AI与大模型应用集成及云原生挑战
java·微服务·ai·kubernetes·大模型·embedding·spring ai