17.3.Image
完整的镜像表示分三部分,用 /
分隔:
hub/namespace/name:tag
- hub:Docker Hub地址
- namespace:命名空间,表示一个用户或组织下的所有镜像
- name:镜像名称
- tag:镜像标签
如果从Docker官方仓库拉取镜像,可以省略hub/namespace
。
获取镜像
使用 docker pull
命令下载镜像。如果不指定tag
,默认选择latest标签。
docker pull python:3.7-slim
docker image pull python:3.7-slim
pull
命令完整用法如下:
Usage: docker pull [OPTIONS] NAME[:TAG|@DIGEST]
Pull an image or a repository from a registry
Options:
-a, --all-tags Download all tagged images in the repository
--disable-content-trust Skip image verification (default true)
--platform string Set platform if server is multi-platform capable
-q, --quiet Suppress verbose output
查看本地镜像
docker images
docker image ls
# 列出全部镜像,包括隐藏的镜像
docker images -a
docker image ls -a
给镜像打标签
使用 docker tag
命令来给本地镜像添加新的标签。
docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
docker image tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
也可以用image ID代替source image name。
搜索Hub镜像
使用 docker search
命令来搜索Hub的镜像。
docker search python
创建镜像
创建镜像有三种方式:
- 将已有的container保存为image
- 基于 Dockerfile 创建
- 基于本地模板导入
# 将已有的container保存为image
docker commit -a 'Author' -m 'Commit message' container_ID image_name:tag
# 基于本地模板导入
docker import
# docker image build -t image_name:tag .
删除镜像
使用 docker rmi
命令来删除镜像,分两种方式:一种是通过镜像名和标签来删除;一种是通过镜像 ID 来删除。平时使用过程中,大部分都是通过镜像 ID 来删除。
docker rmi image_name:tag
docker rmi image_id
docker image rmi
# 强制删除
docker --force rmi
清理镜像
# 删除没有使用的镜像
docker image prune
导出镜像
docker save -o python.tar python:3.7-slim
docker image save
导入镜像
docker load -i python.tar
docker load < python.tar
docker image load
上传镜像
# 默认上传至Docker Hub官方仓库
docker push image_name:tag
docker image push image:tag
# 上传至指定的hub仓库
## 需要先将 hub/image_name:tag 作为镜像的标签
## 而且还要使用docker login命令登录 hub
docker push hub/image_name:tag
查看镜像的详细信息
docker history
docker inspect
docker image history
docker image inspect