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
  • 镜像的两大核心原则
  • 镜像的灵活性
  • 如何找到镜像
  • Docker Hub 提供的镜像种类

Was this helpful?

  1. concepts

什么是镜像?

容器本质上是一个隔离的进程,那么它的文件和配置从哪里来?又如何共享这些环境呢?

这就是**容器镜像(Container Image)**的作用所在。

镜像是一个标准化的包,包含了运行容器所需的所有文件、二进制文件、库以及配置。

例如:

  • 对于一个 PostgreSQL 镜像,它会打包数据库的二进制文件、配置文件以及其他依赖项。

  • 对于一个 Python Web 应用的镜像,它会包含 Python 运行时、应用代码以及所有相关的依赖。


镜像的两大核心原则

  1. 镜像是不可变的(Immutable) 一旦创建镜像,就无法对其进行修改。你只能基于现有镜像创建新的镜像,或者在其基础上添加变更。

  2. 镜像由层(Layer)组成 每一层代表一组文件系统的变更,比如添加、删除或修改文件。


镜像的灵活性

基于上述两点原则,镜像可以被扩展或叠加。 例如:如果你要构建一个 Python 应用镜像,可以从官方的 Python 镜像开始,然后添加额外的层以安装应用所需的依赖,并加入你的代码。这样,你只需专注于应用本身,而不必重复处理 Python 运行时的基础部分。


如何找到镜像

Docker Hub 是默认的全球镜像仓库,用于存储和分发容器镜像。它包含超过 100,000 个由开发者创建的镜像,可以直接通过 Docker Desktop 搜索并运行这些镜像。


Docker Hub 提供的镜像种类

Docker Hub 上有一些由 Docker 支持和认证的高质量镜像,这些被称为 Docker Trusted Content,包括以下几种类型:

  1. Docker 官方镜像(Docker Official Images) 经过精心挑选的镜像库,是大多数用户的起点,也是 Docker Hub 上安全性最高的一批镜像。 (例如:Redis 和 Memcached 是一些流行的官方镜像,你可以快速下载并使用这些服务。)

  2. Docker 验证发布者(Docker Verified Publishers) 由商业出版商发布的高质量镜像,经过 Docker 验证。

  3. Docker 赞助的开源镜像(Docker-Sponsored Open Source) 由 Docker 赞助的开源项目发布和维护的镜像,属于 Docker 的开源支持计划。

此外,还有一些基础镜像(如 Node.js 的官方镜像),可以作为起点,供你在其基础上添加自己的文件和配置。通过容器镜像,开发者可以更高效地构建、分享和运行应用,从而专注于开发本身,避免处理重复的环境配置问题。

Previous什么是容器?Next什么是Docker?

Last updated 4 months ago

Was this helpful?