docker
  • docker教程
  • advanced
    • Docker 构建缓存指南
    • Docker分配CPU资源
    • Dockerfile+Maven插件构建SpringBoot镜像(推荐)
    • Dockerfile构建SpringBoot镜像
    • idea配置docker
    • Docker Jenkins进阶配置
    • 基于jenkins容器部署SpringBoot应用构建镜像(基于Dockerfile+Maven插件构建)
    • Maven插件构建SpringBoot镜像(二)
    • 基于Maven插件为SpringBoot应用构建镜像并推送到远程_私人仓库(Docker Hub)
    • Maven插件构建SpringBoot镜像(一)
    • Docker MongoDB进阶配置
    • Docker 多阶段构建指南
    • Docker MySql进阶配置
    • Docker network进阶配置
    • Docker Nginx进阶配置
    • Docker空(none)镜像处理
    • Docker pip install --no-cache-dir
    • Docker redis进阶配置
  • concepts
    • docker、docker engine和docker desktop区别
    • 架构
    • 什么是容器?
    • 什么是镜像?
    • 什么是Docker?
    • 什么是仓库?
  • docker-compose
    • Docker Compose 锚点的用法
    • docker-compose 编排多服务
    • docker-compose 常用命令
    • docker-compose 部署jenkins
    • docker-compose安装mySql
    • docker-compose网络配置
    • docker-compose安装nginx
    • docker-compose安装redis
    • docker Compose 示例1
  • docker-hub
    • Docker Hub账号服务说明
  • install
    • CentOS Docker 安装
    • Debian Docker 安装
    • Docker 安装 Apache
    • Docker 安装 CentOS
    • Docker 安装 Elasticsearch
    • Docker 安装 GitLab
    • Docker 安装 Jenkins
    • Docker 安装 MongoDB
    • Docker 安装 MySQL
    • Docker 安装 Nginx
    • Docker 安装 Node.js
    • Docker 安装 PHP
    • Docker 安装 Portainer
    • Docker Python 官方镜像使用说明(TAG说明)
    • Docker 安装 Python
    • Docker 安装 Redis
    • Docker 安装 Tomcat
    • Docker 安装 Ubuntu
    • Docker 安装 Wordpress
    • Docker 国内镜像加速
    • MacOS Docker 安装
    • Ubuntu Docker 安装
    • Windows Docker 安装
  • manual
    • Docker attach 命令
    • Docker build 命令
    • Docker 清理命令
    • Docker命令大全
    • Docker commit 命令
    • docker-compose-run-command
    • Docker cp 命令
    • Docker create 命令
    • Docker diff 命令
    • Docker rm 命令
    • Docker exec 命令
    • Docker export 命令
    • Docker history 命令
    • Docker images 命令
    • Docker import 命令
    • Docker info 命令
    • Docker inspect 命令
    • Docker kill 命令
    • Docker load 命令
    • Docker login/logout 命令
    • Docker logs 命令
    • Docker network 命令
    • Docker pause/unpause 命令
    • Docker port 命令
    • Docker 常见问题
    • Docker ps 命令
    • Docker pull 命令
    • Docker push 命令
    • Docker rename 命令
    • docker-resources
    • Docker rm 命令
    • Docker rm 命令
    • Docker run 命令
    • Docker save 命令
    • Docker search 命令
    • Docker start/stop/restart 命令
    • Docker stats 命令
    • Docker tag 命令
    • Docker top 命令
    • Docker version 命令
    • Docker version 命令
    • Docker wait 命令
    • diff
      • Docker Compose 和 docker-compose 区别
      • Docker import、export 与 save、load 命令 区别
  • usage
    • Docker docker-compose 使用
    • Docker 容器连接
    • Docker 容器使用
    • Docker Dockerfile Ptyhon实战配置-1
    • Docker Dockerfile Ptyhon实战配置之多阶段构建-2
    • Docker Dockerfile
    • Docker 镜像使用
    • Docker Machine
    • Docker 仓库管理
    • Swarm集群管理
  • assets
    • mysql
      • my.cnf
Powered by GitBook
On this page
  • 问题来了
  • 这时候容器就登场了!
  • 容器的优势
  • 容器与虚拟机(VM)的区别
  • 容器与虚拟机结合使用

Was this helpful?

  1. concepts

什么是容器?

想象一下,你正在开发一个现象级的 Web 应用程序,它由三个主要组件组成:一个 React 前端、一个 Python API 和一个 PostgreSQL 数据库。如果你想在这个项目上工作,你需要安装 Node.js、Python 和 PostgreSQL。

问题来了

  1. 如何确保你使用的版本与团队其他开发者一致? 或者与你的 CI/CD 系统以及生产环境一致?

  2. 如何确保你的应用所需的 Python(或 Node.js、数据库)版本不会受到你电脑上已有版本的影响? 如何避免版本冲突?

这时候容器就登场了!

简单来说,容器就是为你的应用程序的每个组件提供的独立隔离的运行环境。例如:

  • 前端 React 应用运行在一个容器中。

  • Python API 引擎运行在另一个容器中。

  • 数据库运行在第三个容器中。

这些容器相互独立,且与主机系统隔离。

容器的优势

  1. 自包含(Self-contained) 每个容器都包含了其正常运行所需的一切,不依赖主机上预装的任何依赖。

  2. 隔离性(Isolated) 容器之间相互隔离,与主机系统的交互也非常有限,从而提升了应用的安全性。

  3. 独立性(Independent) 每个容器都可以独立管理。删除一个容器不会影响其他容器。

  4. 可移植性(Portable) 容器可以运行在任何地方!开发机上运行的容器可以在数据中心、云端或其他地方完全一样地运行。


容器与虚拟机(VM)的区别

不深入细讲的话,虚拟机包含一个完整的操作系统,包括内核、硬件驱动程序、程序和应用。 启动一个虚拟机来隔离一个应用,资源开销很大。

而容器只是一种隔离的进程,拥有其运行所需的所有文件。多个容器共享同一个内核,因此可以在更少的硬件资源上运行更多应用。


容器与虚拟机结合使用

在很多场景下,容器和虚拟机会一起使用。 例如:在云环境中,通常会先创建虚拟机(VM)作为基础设施,但不会每个虚拟机只运行一个应用。 通过在虚拟机中运行容器,你可以运行多个容器化的应用程序,从而提高资源利用率并降低成本。


简而言之,容器为开发者和运维人员提供了一个更轻量、更高效的解决方案,可以更方便地管理和部署应用程序。

Previous架构Next什么是镜像?

Last updated 4 months ago

Was this helpful?