Docker的介绍
Docker的官方网站
Docker是一个软件箱子,或者称之为一个容器,容器间相互隔离的一钟容器技术。系统级别的容器,比如说一个CentOS,或一个Ubuntu的容器,只要一次构建,你就可以发布到在任何地方(各种您熟悉的操作系统),并且获得一个Linux(CentOS或Ubuntu)的虚拟运行环境。当然Docker也能提供服务级别(PHP,Go,C++等等)的容器,甚至是自定义应用程序(一个博客,一个电子商务网站等等)容器。
注意:容器技术不只是单单指得是Docker,Docker比较流行,几乎成为容器技术的代名词。
Docker与虚拟机的区别
VM(虚拟机) | Docker |
---|---|
资源占用多,虚拟机会独占一部分内存和硬盘空间。它运行的时候,其他程序就不能使用这些资源了。哪怕虚拟机里面的应用程序,真正使用的内存只有 1MB,虚拟机依然需要几百 MB 的内存才能运行。 | 启动快,容器里面的应用,直接就是底层系统的一个进程,而不是虚拟机内部的进程。所以,启动容器相当于启动本机的一个进程,而不是启动一个操作系统,速度就快很多。 |
冗余步骤多,虚拟机是完整的操作系统,一些系统级别的操作步骤,往往无法跳过,比如用户登录。 | 资源占用少,容器只占用需要的资源,不占用那些没有用到的资源;虚拟机由于是完整的操作系统,不可避免要占用所有资源。另外,多个容器可以共享资源,虚拟机都是独享资源。 |
启动慢,启动操作系统需要多久,启动虚拟机就需要多久。可能要等几分钟,应用程序才能真正运行。 | 体积小,容器只要包含用到的组件即可,而虚拟机是整个操作系统的打包,所以容器文件比虚拟机文件要小很多。 |
Docker的概述
Docker是一个容器管理服务。Docker的关键字是在任何地方开发,部署和运行。Docker的整个想法是让开发人员轻松开发应用程序,将它们发送到容器中,然后可以在任何地方部署。Docker的最初版本发布于2013年3月,从那时起,它已成为现代世界发展的流行语,特别是面对基于敏捷开发的项目。
Docker的功能
- Docker能够通过容器提供更小的操作系统占用空间来减小开发规模。
- 使用容器,不同单位的团队(如开发,QA和Operations)可以更轻松地跨应用程序无缝工作。
- 您可以在任何物理和虚拟机甚至云上的任何位置部署Docker容器。
- 由于Docker容器非常轻巧,因此它们非常容易扩展。
Docker的组件
Docker具有以下组件
- Docker for Mac - 它允许在Mac操作系统上运行Docker容器。
- Docker for Linux - 它允许在Linux操作系统上运行Docker容器。
- Docker for Windows - 它允许在Windows操作系统上运行Docker容器。
- Docker Engine - 用于构建Docker镜像和创建Docker容器。
- Docker Hub - 这是用于托管各种Docker镜像的仓库。
- Docker Compose - 用于定义使用多个Docker容器的应用程序。
Docker版本
- 社区版(CE)
- 企业版(EE)
Docker版本对比
功能 | Docker 引擎社区版 | Docker 引擎企业版 | Docker 高级社区版 |
---|---|---|---|
容器引擎和内置编排 | 支持 | 支持 | 支持 |
经过认证的基础设施,插件和ISV容器 | 否 | 支持 | 支持 |
镜像管理 | 否 | 否 | 支持 |
容器应用管理 | 否 | 否 | 支持 |
镜像安全扫描 | 否 | 否 | 支持 |
Docker 社区版(CE)
Docker社区版非常适合希望开始使用Docker并尝试使用基于容器的应用程序的开发人员和小型团队。Docker CE有三种类型的更新通道:stable,test和nightly
- Stable - 为您提供一般可用性的最新版本。
- Test - 提供在一般可用之前准备好进行测试的预发布。
- Nightly - 为您提供下一个主要版本的最新正在进行的工作。
支持的平台
桌面系统
平台 | x86_64 |
---|---|
Docker Desktop for Mac(macOS) | 支持 |
Docker Desktop for Windows(Microsoft Windows 10) | 支持 |
服务器平台
平台 | x86_64/amd64 | ARM | ARM64/AARCH64 | IBM Power (ppc64le) | IBM Z (s390x) |
---|---|---|---|---|---|
CentOS | 支持 | 否 | 支持 | 否 | 否 |
Debian | 支持 | 支持 | 支持 | 否 | 否 |
Fedora | 支持 | 否 | 支持 | 否 | 否 |
Ubuntu | 支持 | 支持 | 支持 | 支持 | 支持 |