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-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
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: nginx
ports:
- protocol: TCP
port: 80
targetPort: 80
type: 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: 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
kubectl apply -f flask-deployment.yaml
kubectl apply -f flask-service.yaml
7. 访问服务
bash
kubectl get services
curl http://<service_ip>:80
通过以上步骤,你已经完成了从开发、打包、部署到访问整个流程的学习。希望这些内容能帮助你更好地理解和掌握 Docker 和 Kubernetes 的基础语法!