三沙网站建设百度广告联盟标识
Docker 简介
-  
Docker 功能:
- Docker 是一款可以将程序和环境打包并运行的工具软件。
 - 通过 Docker,可以将程序及其依赖环境打包,确保在不同操作系统上一致的运行效果。
 
 -  
环境一致性问题:
- 程序依赖于特定的环境,不同操作系统和配置会导致程序运行结果不同。
 - Docker 通过打包程序和环境,解决了环境依赖问题。
 
 
Docker 基础概念
-  
基础镜像(Base Image):
- 基础镜像是包含操作系统用户空间部分和程序语言依赖的文件系统、依赖库和配置的压缩包。
 - 例如,
python:3.9镜像包含 Python 3.9 解释器。 
 -  
Dockerfile:
- Dockerfile 是一个文本文件,包含一系列命令,用于构建容器镜像。
 - 例如:
FROM python:3.9 WORKDIR /app COPY requirements.txt . RUN yum install gcc RUN pip install --no-cache-dir -r requirements.txt COPY . /app CMD ["python", "app.py"] 
 -  
容器镜像(Container Image):
- 容器镜像是 Dockerfile 构建的结果,包含环境和应用程序的打包文件。
 - 通过 
docker build命令构建。 
 -  
Registry:
- Registry 是镜像仓库,用于存储和管理 Docker 镜像。
 - 通过 
docker push和docker pull命令与 Registry 交互。 
 
容器与虚拟机的区别
-  
容器:
- 容器是独立的环境和应用程序的运行实例。
 - 容器利用 Namespace 和 Cgroup 技术,看起来像独立操作系统,但实际上共享宿主机的内核。
 
 -  
虚拟机:
- 虚拟机包含完整的操作系统,资源占用更多,启动时间更长。
 - 容器相比虚拟机更轻量级,启动更快。
 
 
Docker 架构原理
-  
Client/Server 架构:
- Docker-cli(客户端)通过命令行与 Docker daemon(服务器)交互。
 - Docker daemon 通过 RESTful API 接收命令并执行。
 
 -  
Docker Daemon:
- 包含 Docker Server 和 Engine 两层。
 - Docker Server 提供 HTTP 服务,Engine 层负责创建和管理容器。
 
 
Docker 相关工具
-  
Docker Compose:
- 用于管理多个容器组成的服务的部署。
 - 通过 YAML 文件定义服务,使用 
docker-compose up命令一键部署。 
 -  
Docker Swarm:
- 用于在多台服务器上部署和管理容器服务的集群。
 - 支持服务的迁移和扩缩容。
 
 
Docker 与 Kubernetes(k8s)
-  
关系:
- Docker 解决单个容器的部署问题。
 - Docker Compose 解决多个容器组成的服务的部署问题。
 - Docker Swarm 解决多台服务器上的服务部署问题。
 - Kubernetes(k8s)是 Docker Swarm 的竞品,兼容 Docker 容器,实现更高级的容器编排调度。
 
 -  
Kubernetes 功能:
- 在多台 Node 服务器上调度 Pod,进行部署和扩缩容。
 - Pod 内部可以包含多个容器,每个容器是一个服务进程。
 
 
总结
- Docker 是一个将程序和环境打包并运行的工具软件。
 - Docker 容器是自带独立运行环境的特殊进程,底层使用宿主机的操作系统内核。
 - Docker 通过 Dockerfile 描述依赖关系,构建镜像,存储和分发镜像,启动容器,解决环境依赖问题。
 - Docker Compose、Docker Swarm 和 Kubernetes 是 Docker 的扩展工具,分别解决不同层面的服务部署和容器编排问题。
 
