Docker 容器化平台
docker 和传统虚拟机有什么区别?
- 物理服务器/独立服务器/物理机:真实的独立主机
- 虚拟机:如 VMware 的虚拟机
- ECS(Elastic Compute Service,弹性计算服务):支持配置自主升降机
- VPS(Virtual Private Server,虚拟专用服务器):不能自主升降机
- 非大陆服务器可以不用备案
- Docker:一个将程序和环境打包并运行的工具软件
- 容器:自带独立运行环境的特殊进程,用的是宿主机的操作系统内核(本身不自带操作系统),因为没有内核,所以启动快
- Namespace:
- Cgroup
- Docker 镜像:Docker 容器的源代码,用于创建容器
- 一般分层设计,每层是单独的小镜像,多层构建大镜像
- 通过 Docker build 命令创建
- run 启动容器
- Layer:Dockerfile 中每一条配置指令都是一个 Docker 层,都是对前一层进行某些进化
- 四种状态:
- 运行、已暂停、重新启动、已退出
- 存储卷:Docker 内部数据在外部的挂载
- 孤儿卷:未与任何容器关联的卷
Dockerfile
- Docker 镜像的构建蓝图,编辑结果是镜像
- 常用指令:
- FROM:指定基础镜像。一定是第一条指令
- 包含一些基础的操作系统和依赖配置
- LABEL:为镜像指定标签
- RUN:运行指定的命令
- CMD:容器启动时要运行的命令,多个 CMD 只会运行最后一个
- COPY 与 ADD 的区别: COPY 的 SRC 只能是本地文件,其他用法一致。
- ONBUILD:当镜像用作另一个镜像构建的基础时,ONBUILD 指令向镜像添加将在稍后执行的触发指令。如果要构建将用作构建其他镜像的基础的镜像(例如,可以使用特定于用户的配置自定义的应用程序构建环境或守护程序),这将非常有用。
- FROM:指定基础镜像。一定是第一条指令
Docker compose
- 对容器启动进行编排,设定顺序、cpu 占用等
Docker Swarm
- Docker 的本机集群,允许将多个 Docker 主机整合成一个单一的虚拟主机,方便进行扩缩容
- Docker:单个容器部署
- Docker Compose:多个容器组测的一套服务的部署
- Docker Swarm:一套服务在多台服务器上的部署
Docker Registry
- Docker 的镜像仓库
Docker 架构
- Docker-cli 是 client
- Docker daemon 是 server
- 我们在 cli 输入命令,会请求 daemon 进行实际的处理
CI (Continuous Integration)--持续集成服务--主要用于整合团队开发中不同开发者提交到开发仓库中的项目代码变化,并即时整合编译,检查整合编译错误的服务。它需要一天中多次整合编译代码的能力,若出现整合错误,可以优异地准确定位提交错误源。
