Docker 仓库相关操作命令大全及示例
文章目录
- Docker 仓库操作命令大全
- 1. 登录 Docker 仓库
- 命令
- 参数说明
- 示例
- 2. 拉取镜像
- 命令
- 参数说明
- 示例
- 3. 推送镜像
- 命令
- 参数说明
- 示例
- 4. 搜索镜像
- 命令
- 参数说明
- 示例
- 5. 重新打标签(重新标记镜像)
- 命令
- 参数说明
- 示例
- 6. 查看本地镜像列表
- 命令
- 参数说明
- 示例
- 7. 删除本地镜像
- 命令
- 参数说明
- 示例
- 8. 清理未使用的镜像
- 命令
- 参数说明
- 示例
- 9. 查看镜像详细信息
- 命令
- 参数说明
- 示例
- 10. 查看镜像历史
- 命令
- 参数说明
- 示例
Docker 仓库操作命令大全
1. 登录 Docker 仓库
命令
docker login [OPTIONS] [SERVER]
参数说明
-u, --username
:指定登录仓库的用户名。-p, --password
:指定登录仓库的密码。--password-stdin
:从标准输入读取密码,可提高安全性,避免密码暴露在命令历史中。SERVER
:要登录的 Docker 仓库地址,默认是 Docker Hub(https://index.docker.io/v1/
)。
示例
- 登录 Docker Hub 并交互式输入用户名和密码:
docker login
- 登录 Docker Hub 并指定用户名和密码:
docker login -u your_username -p your_password
- 登录私有仓库并从标准输入读取密码:
echo "your_password" | docker login -u your_username --password-stdin myprivate-registry.example.com
2. 拉取镜像
命令
docker pull [OPTIONS] NAME[:TAG|@DIGEST]
参数说明
-a, --all-tags
:拉取指定仓库中所有标签的镜像。--platform
:指定要拉取镜像的平台(如linux/amd64
、linux/arm64
等)。NAME
:镜像的名称,格式为[REGISTRY_HOST[:REGISTRY_PORT]/]REPOSITORY
。TAG
:镜像的标签,默认为latest
。DIGEST
:镜像的摘要,可用于精确指定要拉取的镜像版本。
示例
- 从 Docker Hub 拉取
nginx
镜像的最新版本:
docker pull nginx
- 拉取
nginx
镜像的特定版本:
docker pull nginx:1.23.3
- 拉取私有仓库的镜像:
docker pull myprivate-registry.example.com/myapp:v1
- 拉取指定平台的镜像:
docker pull --platform linux/arm64 nginx
- 拉取指定仓库所有标签的镜像:
docker pull -a busybox
3. 推送镜像
命令
docker push [OPTIONS] NAME[:TAG]
参数说明
--disable-content-trust
:禁用内容信任,默认情况下 Docker 会验证镜像的签名。NAME
:要推送的镜像名称,格式为[REGISTRY_HOST[:REGISTRY_PORT]/]REPOSITORY
。TAG
:镜像的标签,默认为latest
。
示例
- 推送本地镜像到 Docker Hub:
# 先给本地镜像打标签
docker tag mylocalimage your_dockerhub_username/myimage:latest
# 然后推送
docker push your_dockerhub_username/myimage:latest
- 推送镜像到私有仓库:
docker tag mylocalimage myprivate-registry.example.com/myimage:v2
docker push myprivate-registry.example.com/myimage:v2
- 禁用内容信任进行推送:
docker push --disable-content-trust myprivate-registry.example.com/myimage:v2
4. 搜索镜像
命令
docker search [OPTIONS] TERM
参数说明
--filter
:过滤搜索结果,支持的过滤器有is-official
(官方镜像)、is-automated
(自动构建的镜像)、stars
(镜像的星标数)等。--limit
:限制搜索结果的数量。TERM
:搜索的关键词。
示例
- 搜索包含
ubuntu
的镜像:
docker search ubuntu
- 只搜索官方的
ubuntu
镜像:
docker search --filter is-official=true ubuntu
- 搜索星标数大于 100 的
nginx
镜像,限制结果为 5 条:
docker search --filter stars=100 --limit 5 nginx
5. 重新打标签(重新标记镜像)
命令
docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
参数说明
SOURCE_IMAGE
:源镜像的名称。TAG
:源镜像和目标镜像的标签,默认为latest
。TARGET_IMAGE
:目标镜像的名称,通常用于指定新的仓库和名称。
示例
- 为本地的
myapp
镜像添加一个新标签myapp:v1.1
:
docker tag myapp myapp:v1.1
- 将本地的
myapp:v1
镜像标记为可推送到 Docker Hub 的格式:
docker tag myapp:v1 your_dockerhub_username/myapp:v1
- 将本地镜像标记为可推送到私有仓库的格式:
docker tag mylocalimage myprivate-registry.example.com/myimage:prod
6. 查看本地镜像列表
命令
docker images [OPTIONS] [REPOSITORY[:TAG]]
参数说明
-a, --all
:显示所有镜像,包括中间层镜像。--digests
:显示镜像的摘要信息。--no-trunc
:不截断输出,显示完整的镜像 ID 等信息。-q, --quiet
:只显示镜像的 ID。REPOSITORY
:指定要显示的镜像仓库名称。TAG
:指定要显示的镜像标签。
示例
- 列出所有本地镜像:
docker images
- 列出所有以
nginx
开头的镜像:
docker images nginx*
- 只列出镜像的 ID:
docker images -q
- 显示镜像的摘要信息:
docker images --digests
7. 删除本地镜像
命令
docker rmi [OPTIONS] IMAGE [IMAGE...]
参数说明
-f, --force
:强制删除镜像,即使镜像正在被容器使用。--no-prune
:不删除未使用的父镜像。IMAGE
:要删除的镜像的名称、标签或 ID。
示例
- 删除指定标签的
nginx
镜像:
docker rmi nginx:1.23.3
- 强制删除多个镜像:
docker rmi -f nginx:1.23.3 myapp:v1
- 删除镜像 ID 对应的镜像:
docker rmi $(docker images -q myapp)
8. 清理未使用的镜像
命令
docker image prune [OPTIONS]
参数说明
-a, --all
:删除所有未被使用的镜像,包括构建过程中产生的中间层镜像。--filter
:过滤要清理的镜像,例如until
(指定时间之前创建的镜像)。
示例
- 清理所有未被使用的镜像:
docker image prune -a
- 清理 24 小时之前创建的未使用镜像:
docker image prune --filter "until=24h"
9. 查看镜像详细信息
命令
docker inspect [OPTIONS] NAME|ID [NAME|ID...]
参数说明
--format
:指定输出格式,使用 Go 模板语法。NAME|ID
:镜像的名称或 ID。
示例
- 查看
nginx
镜像的详细信息:
docker inspect nginx
- 只输出
nginx
镜像的创建时间:
docker inspect --format='{{.Created}}' nginx
10. 查看镜像历史
命令
docker history [OPTIONS] IMAGE
参数说明
--format
:指定输出格式,使用 Go 模板语法。--no-trunc
:不截断输出。-q, --quiet
:只显示镜像层的 ID。IMAGE
:镜像的名称或 ID。
示例
- 查看
nginx
镜像的构建历史:
docker history nginx
- 只显示
nginx
镜像构建历史的层 ID:
docker history -q nginx
- 以自定义格式显示
nginx
镜像的构建历史:
docker history --format '{{.ID}}: {{.CreatedBy}}' nginx
关注我,每天带你进步一点