1.镜像仓库
Docker镜像仓库是存储和管理Docker镜像的地方。它允许用户上传、下载和共享Docker镜像,从而方便在不同的主机上部署和运行应用程序。
常见的Docker镜像仓库包括:
- Docker Hub:官方的Docker镜像仓库,包含了大量的公共镜像供用户使用。
- Docker Registry:Docker官方提供的镜像仓库服务,可通过在本地搭建私有仓库实现镜像的存储和共享。
- Harbor:由VMware开源的容器镜像仓库。提供了镜像的存储、复制、标签等功能,并支持多租户和安全管理。
- Quay:由CoreOS开发的容器镜像仓库,提供了可靠的镜像构建、存储和分发功能,并支持私有和公共仓库。
- Alibaba Cloud Container Registry:阿里云提供的容器镜像仓库服务,支持镜像的存储、共享和部署。
- Google Container Registry:谷歌云提供的容器镜像仓库服务,支持镜像的存储和分享,并与Google Cloud Platform集成。
在使用Docker时,可以选择使用公共镜像仓库,也可以搭建私有仓库来存储和管理自己的镜像。
1.仓库的分类
Docker镜像仓库根据其分类和工作机制可以分为以下几类:
-
公共仓库:
- Docker Hub:Docker官方提供的公共仓库,包含了大量的官方和社区维护的公共镜像,用户可以自由下载和使用。
- 其他公共仓库:除了Docker Hub之外,还有一些其他的公共仓库,例如Quay和Alibaba Cloud Container Registry等,也提供了大量的公共镜像供用户使用。
-
私有仓库:
- Docker Registry:Docker官方提供的镜像仓库服务,用户可以在本地搭建私有仓库,用于存储和共享自己的镜像。
- Harbor:由VMware开源的容器镜像仓库,支持搭建私有仓库,并提供了多租户和安全管理功能。
- 其他私有仓库:还有一些其他的私有仓库可以选择使用,例如Nexus Repository和JFrog Artifactory等。
2.仓库相关命令
以下是一些常用的Docker镜像仓库相关命令:
登录到镜像仓库:
docker login
- 该命令用于登录到指定的镜像仓库,需要提供用户名和密码。
登出镜像仓库:
docker logout
- 该命令用于登出当前登录的镜像仓库。
搜索镜像:
docker search <镜像名>
- 该命令用于在镜像仓库中搜索指定名称的镜像。
下载镜像:

docker pull <镜像名>:<标签>
- 该命令用于从镜像仓库中下载指定名称和标签的镜像。
上传镜像:
docker push <镜像名>:<标签>
- 该命令用于将本地构建的镜像上传到镜像仓库中。
删除镜像:
docker rmi <镜像名>:<标签>
- 该命令用于删除本地已有的镜像,包括从镜像仓库中下载的镜像和通过构建Dockerfile生成的镜像。
查看镜像详情:
docker image inspect <镜像名>:<标签>
- 该命令用于查看指定镜像的详细信息,包括标签、大小、创建时间等。
列出已下载的镜像:
docker image ls
- 该命令用于列出本地已下载的镜像列表。
列出私有仓库中的镜像:
docker search <私有仓库地址>/<镜像名>
- 该命令用于搜索指定私有仓库中的镜像列表。
删除私有仓库中的镜像:
docker rmi <私有仓库地址>/<镜像名>:<标签>
- 该命令用于删除私有仓库中的指定镜像。
1.docker pull
docker pull语法如下:
docker pull [选项] <镜像名>[:<标签>]
其中,<镜像名>
指定要下载的镜像的名称,<标签>
指定要下载的镜像的版本标签。
常用的选项包括:
-a, --all-tags
:下载指定镜像名的所有标签的镜像。--disable-content-trust
:禁用镜像内容信任,默认情况下Docker将验证拉取的镜像的内容是否经过签名。--platform
:指定平台架构,用于多平台镜像的下载。-
下载指定名称的镜像:
docker pull ubuntu
-
下载指定名称和标签的镜像:
docker pull ubuntu:latest
-
下载指定名称的所有标签的镜像:
docker pull --all-tags ubuntu
-
下载指定平台架构的镜像:
docker pull --platform linux/amd64 ubuntu
2.docker search
docker search语法如下:
docker search [选项] <关键字>
其中,<关键字>
指定要搜索的镜像关键字。
常用的选项包括:
--filter, -f
:按指定的过滤条件进行搜索,如"is-official=true"
仅搜索官方镜像,"stars=3"
仅搜索星级为3的镜像。--limit
:指定搜索结果的数量限制,默认为25。--no-trunc
:不截断搜索结果的描述。--format
:指定输出结果的格式。-
搜索包含关键字的镜像:
docker search ubuntu
-
搜索官方镜像:
docker search --filter "is-official=true"
-
搜索星级为3的镜像:
docker search --filter "stars=3"
-
指定输出结果的数量限制:
docker search --limit 10 ubuntu
-
指定输出结果的格式:
docker search --format "table { {.Name}}\t{ {.Description}}\t{ {.Stars}}" ubuntu
3.docker tag
docker tag
命令用于给镜像打标签,即为已有的镜像添加一个新的标签。
docker tag
命令的语法如下:
docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
其中:
SOURCE_IMAGE
是源镜像的名称或ID。TARGET_IMAGE
是目标镜像的名称或ID。TAG
是可选项,用于指定镜像的标签,默认为latest
。
示例使用方式:
docker tag myimage:latest myregistry/myimage:1.0
上述命令将名为myimage
的镜像的最新标签latest
打上了一个名为myregistry/myimage
的新标签1.0
。
通过docker images
命令可以查看到添加了新标签的镜像。