基本概念
- 镜像:
在 Docker 的术语里,一个只读层被称为镜像,一个镜像是永久不会变的,由于镜像不 可写,所以镜像是无状态的.
- 父镜像:
每一个镜像都可能依赖于由一个或多个下层的组成的另一个镜像。我们有时说,下层那个 镜像是上层镜像的父镜像。
- 基础镜像:
一个没有任何父镜像的镜像,谓之基础镜像。
常用命令
imageName一般都可以使用imageID去替换
- 获取镜像
docker pull [repositoryURL/]ImageName[:TAG]。
TAG默认是latest,标识同一个仓库中不同版本的image(为latest时,docker会跟踪镜像的变化,也就是说,最好别用latest)。
repositoryURL指定仓库地址,默认地址在配置文件中。
查看选项:man docker-pull
- 查看镜像信息
docker images = docker image ls 查看本机已有的镜像:
REPOSITORY | 不同的仓库服务器中,可能出现镜像重名的情况,加仓库地址前缀作为标识。 |
IMAGE ID | 这里只显示了一部分,实际上完整的ID有256个比特,由64个16进制字符组成,平时可以直接使用该ID,但ID越短,发生碰撞的几率就会越大。 此ID相同的镜像的是同一个镜像,一个镜像可能会有不同的标签名。 |
CTEATED | 该镜像的最后修改时间。 |
- 为本地镜像设置新标签
docker tag [option] oldImageName:TAG newImageName:TAG
标签实际上为已有镜像创建一个名字,而不覆盖已有的名字,两者同时存在。
- 查看镜像详细信息
docker [image] inspect [option] imageName
- 搜索镜像
docker search [option] keyword
option:man docker-search
- 删除和清理镜像
docker rmi imageName = docker image rm imageName
option:man dcoker-image rm [option]
当本地镜像有多个标签时,删除其中一个标签不会删除本地镜像,只会删除当前的标签名,直到删除最后一个标签名才会删除本地镜像
docker image prune [option]
清理临时的镜像文件或没有使用的进行镜像文件,具体的效果需要结合选项使用
option:docker image prune --help
- 创建镜像
1.基于已有的容器
首先需要取得已有容器的ID:
docker [container] commit [option] containerID newImageID:TAG
注意这里是容器ID,不是镜像ID,是根据已有的容器创建镜像
option:docker container commit --help
2.基于本地模板导入
需要用到时再找资料或者等我学到那个程度再来更新
3.基于dockerfile创建
需要用到时再找资料或者等我学到那个程度再来更新
- 存出镜像
将本地镜像保存到文件,以便分享
docker [image] save [option] fileName.tar imageName:TAG
option:man docker-save
- 载入镜像
docker [image] load [option] fileName
通过本地文件创建镜像
option:man docker-load
- 上传镜像
docker [image] push imageName[:TAG] | [REGISTRY_HOST[:PORT]/]imageName[:TAG]
第一次使用时这里还有其他操作,信息会保存到~/.docker
查看更多命令及选项直接docker image --help 或 man docker-images。
参考:
[2] Docker技术入门技术与实战 .第三版