## K8S与Docker关系详解

### 一、流程概览
为了更好地理解Kubernetes(K8S)与Docker之间的关系,可以通过以下流程图来帮助理解:

| 步骤 | 操作 |
| ---- | ---- |
| 1 | 创建Docker容器镜像 |
| 2 | 配置Kubernetes资源文件 |
| 3 | 部署应用到Kubernetes集群 |
| 4 | K8S自动调度容器启动 |

### 二、具体步骤及代码示例

#### 1. 创建Docker容器镜像
首先,我们需要在本地开发环境中创建一个Docker容器镜像,以便后续在Kubernetes中部署应用时使用。在命令行中执行以下代码:

```bash
# 拉取一个基础镜像作为基础
docker pull ubuntu

# 创建一个Dockerfile来定义镜像的构建过程
touch Dockerfile
```

Dockerfile内容示例:
```Dockerfile
# 使用基础镜像
FROM ubuntu

# 安装必要的软件或配置
RUN apt-get update \
&& apt-get install -y nginx \
&& rm -rf /var/lib/apt/lists/*

# 暴露端口
EXPOSE 80

# 容器启动时运行的命令
CMD ["nginx", "-g", "daemon off;"]
```

#### 2. 配置Kubernetes资源文件
在本地创建一个YAML文件,用于定义Kubernetes集群中的各种资源,例如Deployments、Services等。在命令行中执行以下代码:

```bash
# 创建一个deployment.yaml文件
touch deployment.yaml
```

Deployment配置示例:
```yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-nginx
spec:
replicas: 3
selector:
matchLabels:
app: my-nginx
template:
metadata:
labels:
app: my-nginx
spec:
containers:
- name: my-nginx
image: nginx:latest
ports:
- containerPort: 80
```

#### 3. 部署应用到Kubernetes集群
使用kubectl工具将定义好的资源文件部署到Kubernetes集群中。在命令行中执行以下代码:

```bash
# 应用配置到K8S集群
kubectl apply -f deployment.yaml
```

#### 4. K8S自动调度容器启动
Kubernetes将根据Deployment配置自动在集群中调度容器的启动。可以通过以下命令查看部署情况:

```bash
# 查看Deployment
kubectl get deployments
```

通过以上步骤,我们成功地将一个Docker容器镜像部署到了Kubernetes集群中,实现了K8S与Docker的结合使用。

希望这篇文章对你理解Kubernetes与Docker的关系有所帮助!祝学习顺利!