1. Docker 是什么

Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源。

Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。

2. Docker架构原理

Docker——入门

docker使用c/s架构,client通过接口与server进程通信实现容器的构建,运行和发布。

client和server可以运行在同一台集群中,也可以实现跨主机远程通信

 

Docker三要素:镜像、容器、仓库

1.镜像

Docker 镜像(Image)就是一个只读的模板,它可以是一个可运行软件(tomcat,mysql),也可以是一个系统(centos)。镜像可以用来创建 Docker 容器,一个镜像可以创建很多容器。

2.容器

Docker 利用容器(Container)独立运行一个或一组应用。容器是用镜像创建的运行实例。它可以被启动、开始、停止、删除。每个容器都是相互隔离的、保证安全的平台。可以把容器看做是一个简易版的 Linux 环境(包括root用户权限、进程空间、用户空间和网络空间等)和运行在其中的应用程序。

容器的定义和镜像几乎一模一样,也是一堆层的统一视角,唯一区别在于容器的最上面那一层是可读可写的。

3.仓库

仓库(Repository)是集中存放镜像文件的场所。

仓库(Repository)和仓库注册服务器(Registry)是有区别的。仓库注册服务器上往往存放着多个仓库,每个仓库中又包含了多个镜像,每个镜像有不同的标签(tag,类似版本号)。

仓库分为公开仓库(Public)和私有仓库(Private)两种形式。

最大的公开仓库是 Docker Hub(https://hub.docker.com/),国内的公开仓库有阿里云 、网易云 等。

 

3. Docker引擎

docker引擎是一个C/S结构的应用

Docker——入门

 

  • server是一个常驻进程
  • REST API实现了client和server间的交互协议
  • CLI实现了容器和镜像的管理,为用户提供了统一的操作界面

4. Docker优势

  1. 更高效的利用系统资源:由于容器不需要进行硬件虚拟以及运行完整操作系统等额外开销,Docker 对系统资源的利用率更高。无论是应用执行速度、内存损耗或者文件存储速度,都要比传统虚拟机技术更高效。因此,相比虚拟机技术,一个相同配置的主机,往往可以运行更多数量的应用。
  2. 更快速的启动时间:传统的虚拟机技术启动应用服务往往需要数分钟,而Docker 容器应用,由于直接运行于宿主内核,无需启动完整的操作系统,因此可以做到秒级、甚至毫秒级的启动时间。大大的节约了开发、测试、部署的时间。
  3. 一致的运行环境:Docker 的镜像提供了除内核外完整的运行时环境,确保了应用运行环境一致性。
  4. 持续交付和部署:Docker是build once,run everywhere. 使用Docker 可以通过定制应用镜像来实现持续集成、持续交付、部署。开发人员可以通过Dockerfile 来进行镜像构建,并结合持续集成(Continuous Integration) 系统进行集成测试,而运维人员则可以直接在生产环境中快速部署该镜像,甚至结合持续部署(Continuous Delivery/Deployment) 系统进行自动部署。
  5. 更轻松的迁移:Docker 使用的分层存储以及镜像的技术,使得应用重复部分的复用更为容易,也使得应用的维护更新更加简单,基于基础镜像进一步扩展镜像也变得非常简单。此外,Docker 团队同各个开源项目团队一起维护了一大批高质量的官方镜像,既可以直接在生产环境使用,又可以作为基础进一步定制,大大的降低了应用服务的镜像制作成本。使用Dockerfile 使镜像构建透明化,不仅仅开发团队可以理解应用运行环境,也方便运维团队理解应用运行所需条件,帮助更好的生产环境中部署该镜像。

原文链接:https://blog.csdn.net/bskfnvjtlyzmv867/article/details/81044217

 

5. Docker容器与虚拟机的区别

Docker是一种轻量级的虚拟化技术,比传统的虚拟机性能更好。

虚拟机的体系结构:

Docker——入门

 

  • server - 表示真实电脑。
  • Host OS - 真实电脑的操作系统,例如:Windows,Linux
  • Hypervisor - 虚拟机平台,模拟硬件,如VMWare,VirtualBox
  • Guest OS - 虚拟机平台上安装的操作系统,例如CentOS Linux
  • App - 虚拟机操作系统上的应用,例如nginx

Docker的体系结构:

Docker——入门

 

  • server - 表示真实电脑。
  • Host OS - 真实电脑的操作系统,例如:Windows,Linux
  • Docker Engine - 新一代虚拟化技术,不需要包含单独的操作系统。
  • App - 所有的应用程序现在都作为Docker容器运行。

Docker体系结构的优势是:不需要为虚拟机操作系统提供硬件模拟。所有应用程序都作为Docker容器工作,性能更好。

 

Docker容器

虚拟机(VM)

操作系统

与宿主机共享OS

宿主机OS上运行宿主机OS

存储大小

镜像小,便于存储与传输

镜像庞大(vmdk等)

运行性能

几乎无额外性能损失

操作系统额外的cpu、内存消耗

移植性

轻便、灵活、适用于Linux

笨重、与虚拟化技术耦合度高

硬件亲和性 

面向软件开发者

面向硬件运维者

Docker优点:轻量级,速度快,运行应用隔离,方便维护...

 

6. Docker 基本命令

启动 Docker systemctl start docker
停止 Docker systemctl stop docker
重启 Docker systemctl restart docker
开机启动 Docker systemctl enable docker
查看 Docker 概要信息  docker info
查看 Docker 帮助文档 docker --help

查看 Docker 版本信息

docker version

 

相关文章:

  • 2021-04-28
猜你喜欢
  • 2022-12-23
  • 2021-12-31
  • 2021-06-22
  • 2021-08-21
相关资源
相似解决方案