docker概述

1. docker相关概念

1.1 docker概述

   Docker 是一个用于开发、传送和运行应用程序的开放平台。Docker 使您能够将应用程序与基础设施
分开,以便您可以快速交付软件。使用 Docker,您可以像管理应用程序一样管理基础设施。通过利用
Docker 的快速交付、测试和部署代码的方法,您可以显着减少编写代码和在生产中运行代码之间的延
迟。
1.2 我们可以用Docker做什么?
  • 构建并运行镜像作为容器
  • 使用 Docker Hub 共享镜像
  • 使用多个容器和一个数据库部署 Docker 应用程序
  • 使用 Docker Compose 运行应用程序
1.3 什么是容器?
     容器是一个标准的软件单元,它打包了代码及其所有依赖项,因此应用程序可以从一个计算环境快速可靠地运
行到另一个计算环境。Docker 容器映像是一个轻量级、独立、可执行的软件包,其中包含运行应用程序所需
的一切:代码、运行时、系统工具、系统库和设置。
1.4 什么是镜像?
     容器镜像在运行时成为容器,在 Docker 容器的情况下,镜像在Docker Engine上运行时成为容器。可用于
基于 Linux 和 Windows 的应用程序,容器化软件将始终运行相同,无论基础架构如何。容器将软件与其环
境隔离开来,并确保它能够一致地工作。
1.5 什么是docker engine?
Docker Engine 是一个客户端-服务器应用程序,具有以下主要组件:
  • 服务器是一种称为守护进程(dockerd 命令)的长时间运行程序。
  • 一个 REST API,它指定了程序可以用来与守护进程对话并指示它做什么的接口。
  • 命令行界面 (CLI) 客户端(docker 命令)。
1.6 docker架构简述
     Docker 使用客户端-服务器架构。Docker客户端与 Docker守护进程对话,后者负责构建、运行和分发
Docker 容器的繁重工作。Docker 客户端和守护程序可以 在同一系统上运行,或者您可以将 Docker 客
户端连接到远程 Docker 守护程序。Docker 客户端和守护进程使用 REST API、UNIX 套接字或网络接口
进行通信。另一个 Docker 客户端是 Docker Compose,它允许您使用由一组容器组成的应用程序。
1.7 docker容器优势有哪些?
(1) 有助于Microservices的落地和部署
(2) 充分利用物理机资源,同时能够整合服务器资源
(3) 提高开发效率,测试效率,部署效率,有利于DevOps的落地,CICD
(4) 云原生落地,应用更好地迁移
1.8 术语
  • Docker主机(Host):安装了Docker程序的主机,运行Docker守护进程
  • Docker镜像(Image):将软件环境打包好的模板,用来创建容器的,一个镜像可以创建多个容器
  • Docker容器(Container):运行镜像后生成的实例称为容器,每运行一次镜像就会产生一个容器,容器可以启动、停止或删除容器使用是沙箱机制,互相隔离,是独立是安全的可以把容器看作是一个简易版的Linux环境,包括用户权限、文件系统和运行的应用等
  • Docker仓库(Repository):用来保存镜像的,仓库中包含许多镜像,每个镜像都有不同的标签Tag

2.部署应用程序演变时代

2.1 直接在操作系统上部署应用程序

问题 :成本高、部署慢、浪费资源、硬件限制、不利于迁移扩展
2.2 虚拟化时代
优点:相对利用好资源,相对容易扩展等
缺点:虚拟机太重了,一上来占用较多的物理资源,移植性低,资源利用率低等
2.3 容器时代
2.3.1 Docker是一种容器技术,使用Docker可以:
  • 将软件环境安装并配置好,打包成一个镜像Image,然后将该镜像发布出去(Docker仓库)其他使用者可以在仓库中下载获取这个镜像
  • 通过Docker运行这个镜像,就可以获取同样的环境(容器)
  • Docker简化了环境部署和配置,实现“一次构建,处处运行”,避免了因运行环境不一致而导致的异常。
2.3.2 Docker容器技术与传统虚拟机技术的区别:
传统虚拟机技术:模拟一个完整的操作系统,先虚拟出一套硬件,然后在其上安装操作系统,最后
在系统上再运行应用程序
缺点:资源占用多,启动慢
Docker容器技术:不是模拟一个完整的操作系统,没有进行硬件虚拟,而是对进程进行隔离,封装
成容器,容器内的应用程序是直接使用宿主机的内核,且容器之间是互相隔离的,互不影响
优点:更轻便、效率高、启动快、秒级
 
3. 使用Docker的步骤
  • 安装Docker
  • 从Docker仓库中下载软件对应的镜像
  • 运行这个镜像,此时会生成一个Docker容器
  • 对容器的启动/停止就是对软件的启动/停止
 

posted on 2022-01-24 14:26  惊涛随笔  阅读(49)  评论(0编辑  收藏  举报

导航