Appearance
镜像
- 是一个只读的模板,一个独立的文件系统,包括运行容器所需的数据,可以用来创建新的容器。
- 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 [仓库名]:[标签]