周振林 周振林
首页
  • 前端文章

    • HTML
    • CSS
    • Tailwind CSS (opens new window)
    • JavaScript
    • Vue3
    • 其他
  • 规范
  • Spring
  • 安装教程
  • 其他教程
  • 归真医学
  • 常用药材
  • 学习笔记
  • 经方学习心得
  • 基础
  • 虚拟化
  • Docker
  • OpenStack
  • 心情杂货
关于
收藏

周振林

IT界的小学生
首页
  • 前端文章

    • HTML
    • CSS
    • Tailwind CSS (opens new window)
    • JavaScript
    • Vue3
    • 其他
  • 规范
  • Spring
  • 安装教程
  • 其他教程
  • 归真医学
  • 常用药材
  • 学习笔记
  • 经方学习心得
  • 基础
  • 虚拟化
  • Docker
  • OpenStack
  • 心情杂货
关于
收藏
  • 基础

  • 虚拟化

  • Docker

    • Docker概念
      • Docker概念
        • 什么是虚拟化
        • 什么是Docker
        • 为什么会有docker
        • 容器与虚拟机比较
      • Docker组成
        • Docker组成部分
        • Docker工作流程
      • 总结
    • Docker安装
    • 运行第一个容器
    • Docker常用命令
    • Docker完整操作
    • Docker存储
    • Docker网络
    • Redis主从集群
    • Docker最佳实践
    • Docker Compose
    • Dockerfile制作镜像
    • 一键安装超多中间件
    • Docker部署MySQL
    • Docker运行JAR
  • OpenStack

  • 心情杂货

  • 更多
  • Docker
周振林
2025-08-13
目录

Docker概念

# Docker概念

# 什么是虚拟化

虚拟化,是指通过虚拟化技术将一台计算机虚拟为多台逻辑计算机。在一台计算机上同时运行多个逻辑计算机,每个逻辑计算机可运行不同的操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率。

虚拟化技术种类很多,例如:软件虚拟化、硬件虚拟化、内存虚拟化、网络虚拟化(vip)、桌面虚拟化、服务虚拟化、虚拟机等等。

# 什么是Docker

Docker 是一个开源的应用容器引擎,基于 Go 语言开发。Docker可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。

Docker的主要目标是“Build,Ship and Run AnyApp,Anywhere”,也就是通过对应用组件的封装、分发、部署、运行等生命周期的管理,使用户的APP(可以是一个WEB应用或数据库应用等等)及其运行环境能够做到“一次封装,到处运行”。

总之一句话:只需要一次配置好环境,换到别的机子上就可以一键部署好,大大简化了操作。

Docker借鉴了标准集装箱的概念。标准集装箱将货物运往世界各地,Docker将这个模型运用到自己的设计中,唯一不同的是:集装箱运输货物,而Docker运输软件。

# 为什么会有docker

Docker就像是给你的应用做了一个“盒子”。这个盒子里面装着你应用运行所需的一切,包括操作系统、程序、库等等,不管你把这个盒子放到哪台电脑上,应用都能在盒子里的环境下运行,不会受外部环境的影响。

所以,Docker的好处就是:

  1. 一切打包在一起,解决了不同环境的兼容问题。
  2. 随时可以搬到任何地方运行,不受操作系统的限制。
  3. 启动速度快,并且比传统虚拟机更轻量,省资源。 就像你把一个应用放进一个随时可以搬运的小盒子里,这个盒子能在任何地方都顺利打开,应用就能正常运行。

# 容器与虚拟机比较

下面的图片比较了 Docker 和传统虚拟化方式的不同之处,可见容器是在操作系统层面上实现虚拟化,直接复用本地主机的操作系统,而传统方式则是在硬件层面实现。

  • 传统虚拟机

传统虚拟机技术基于安装在主操作系统上的虚拟机管理系统(如:VirtualBox和VMWare等),创建虚拟机(虚拟出各种硬件),在虚拟机上安装从操作系统,在从操作系统中安装部署各种应用。

  • Docker

Docker容器是在操作系统层面上实现虚拟化,直接复用本地主机的操作系统,而传统虚拟机则是在硬件层面实现虚拟化。与传统的虚拟机相比,Docker优势体现为启动速度快、占用体积小。

  • 使用上的区别

简单来说: 容器和虚拟机具有相似的资源隔离和分配优势,但功能有所不同,因为容器虚拟化的是操作系统,而不是硬件,因此容器更容易移植,效率也更高。

# Docker组成

# Docker组成部分

Docker是一个客户端-服务器(C/S)架构程序。Docker客户端只需要向Docker服务器或者守护进程发出请求,服务器或者守护进程将完成所有工作并返回结果。Docker提供了一个命令行工具Docker以及一整套RESTful API。你可以在同一台宿主机上运行Docker守护进程和客户端,也可以从本地的Docker客户端连接到运行在另一台宿主机上的远程Docker守护进程。

  1. Docker引擎(Docker Engine) Docker引擎是Docker的核心组件,分为两个部分:
  • Docker守护进程(Docker Daemon):负责管理Docker容器、镜像等的创建、运行和管理。它可以接受来自Docker客户端的命令,并执行容器生命周期管理(例如,启动、停止、删除容器)。
  • Docker客户端(Docker CLI):用户通过命令行与Docker守护进程交互,发送命令执行各种操作。比如,通过docker run启动容器,docker ps查看正在运行的容器等。
  1. Docker镜像(Docker Images) Docker镜像是一个轻量级、可执行的独立软件包,它包含了运行应用所需的所有代码、运行时、库和系统工具。镜像是只读的,容器是从镜像启动的实例。镜像通常由多个层叠加而成,每一层都是文件系统的增量。

  2. Docker容器(Docker Containers) 容器是Docker镜像的一个实例化,可以在隔离的环境中运行应用程序。容器与宿主操作系统共享内核,但相互隔离,保证应用和系统的独立性。容器具有启动速度快、占用资源少、便于扩展等优点。

  3. Docker仓库(Docker Registry) Docker仓库用于存储和共享Docker镜像。Docker Hub是一个公开的Docker镜像仓库,用户可以将镜像上传到Docker Hub,也可以从中下载镜像。企业可以搭建私有仓库,以便管理内部镜像。

  4. Docker网络(Docker Networking) Docker网络提供了容器之间的通信机制。每个容器都可以被分配到一个网络上,允许容器通过内部IP地址或服务名称进行通信。Docker支持多种网络模式,如bridge、host、overlay等。

# Docker工作流程

一个典型的Docker工作流程如下:

  • 构建镜像:首先,开发者通过编写Dockerfile来定义镜像的构建过程。Dockerfile是一个脚本,描述了如何从基础镜像开始,安装依赖并将应用程序添加到镜像中。
  • 构建和推送镜像:使用docker build命令构建镜像,然后将镜像推送到镜像仓库(如Docker Hub或私有仓库)中。
  • 运行容器:通过docker run命令从镜像启动一个容器,可以在容器中运行应用程序。
  • 容器管理:使用docker ps查看运行中的容器,docker stop停止容器,docker rm删除容器等。
  • 容器编排与扩展:使用Kubernetes或Docker Swarm等工具来管理多个容器的部署和扩展。

# 总结

Docker通过提供一种轻量级的容器化技术,使得应用程序能够在不同的环境中一致地运行,带来了更高的开发效率、更好的资源利用率和更简化的运维管理。掌握Docker的基本架构和工作流程,是现代开发人员和运维工程师的必备技能。

Last Updated: 2025/08/14, 18:32:19
ESXI虚拟机安装
Docker安装

← ESXI虚拟机安装 Docker安装→

最近更新
01
肺
10-24
02
脾胃
10-24
03
肝
10-24
更多文章>
Copyright © 2019-2025 鲁ICP备19032096号-1
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式