Skip to content

镜像

  • 是一个只读的模板,一个独立的文件系统,包括运行容器所需的数据,可以用来创建新的容器。
  • docker提供了一个很简单的机制来创建镜像或更新现有的镜像。用户甚至可以从其他人那里下载一个已经做好的镜像直接使用。(镜像是只读的,可以理解为静态文件)
  • 一个镜像可以创建多个容器.
  • 镜像仅包含系统运行所需的的runtime环境。docker背上的集装箱。
  • 例如:Ubuntu镜像仅需170M,宿主机可以部署100~1000个容器。

镜像列表

bash
docker images

  • 各个选项说明:

    • REPOSITORY:表示镜像的仓库源
    • TAG:镜像的标签/版本号
    • IMAGE ID:镜像ID
    • CREATED:镜像创建时间
    • SIZE:镜像大小
  • 同一仓库源可以有多个 TAG,代表这个仓库源的不同个版本,如 ubuntu 仓库源里,有 15.10、14.04 等多个不同的版本,我们使用 REPOSITORY:TAG 来定义不同的镜像。

  • 附加命令:

bash
# 列出本地所有的镜像(包含历史影像层)
docker images -a
# 只显示镜像ID
docker images -q

镜像搜索

bash
docker search
# 示例 查找redis 并限制5条记录
docker search redis --limit 5

  • 参数说明
    • NAME: 镜像仓库源的名称
    • DESCRIPTION: 镜像的描述
    • OFFICIAL: 是否 docker 官方发布
    • stars: 类似 Github 里面的 star,表示点赞、喜欢的意思。
    • AUTOMATED: 自动构建。

拉取镜像

bash
docker pull
# 示例 拉取mysql 镜像:最新版本
docker pull mysql:latest
# 示例 拉取mysql 镜像:指定版本
docker pull mysql:8.0.30

删除镜像

bash
# 普通删除
docker rmi [镜像ID]
# 删除所有
docker rmi $(docker images -aq)
# 强制删除
docker rmi -f [镜像ID]

创建镜像

bash
# 1.创建一个基于ubuntu的test1容器
docker run -it --name test1 ubuntu /bin/bash
# 2.你可以在此容器进行任何整改变成自己的镜像
# 3.生成镜像 格式为:[仓库名]:[标签]
docker commit -m="测试镜像" -a="zou" test1 test/ubuntu:v1
  • 参数说明
    • -m: 提交的描述信息
    • -a: 指定镜像作者
    • test1:容器 ID/名称
    • test/ubuntu:v1: 仓库名/镜像名:标签

导入\导出镜像

bash
# 导出镜像
docker export -o ubuntu.tar [容器ID]
# 导入镜像
docker import ubuntu.tar test/ubuntu:v2

推送镜像

bash
# 登录
docker login
# 推送
docker push [仓库名]:[标签]