Docker命令-镜像仓库
浅小兮Docker login/logout 命令
docker login
和 docker logout
命令用于管理 Docker 客户端与 Docker 注册表的身份验证。通过 docker login
命令,用户可以登录到 Docker 注册表,访问和推送镜像;通过 docker logout
命令,用户可以退出登录。
-
docker login : 登陆到 一个Docker 镜像仓库,如果未指定镜像仓库地址,默认为官方仓库 Docker Hub
-
docker logout : 登出一个D ocker 镜像仓库,如果未指定镜像仓库地址,默认为官方仓库 Docker Hub
docker login
docker login
命令用于登录到 Docker 注册表。
默认情况下,它登录到 Docker Hub,但也可以登录到其他 Docker 注册表。
语法
docker login [OPTIONS] [SERVER]
-
SERVER
: Docker 注册表的服务器地址(默认是 Docker Hub)。 -
-u, --username
: 登录用户名。 -
-p, --password
: 登录密码(不推荐在命令行使用)。 -
--password-stdin
: 从标准输入读取密码。
使用示例
1、登录到 Docker Hub
docker login
提示输入 Docker Hub 用户名和密码。
2、登录到 Docker Hub(指定用户名)
docker login --username myusername
3、提示输入 Docker Hub 密码。
从标准输入读取密码:
echo "mypassword" | docker login --username myusername --password-stdin
从标准输入读取密码,避免在命令行明文输入密码。
4、登录到自定义注册表
docker login myregistry.com
提示输入自定义注册表的用户名和密码。
docker logout
docker logout
命令用于退出当前登录的 Docker 注册表。默认情况下,它退出 Docker Hub,但也可以指定其他注册表。
语法
docker logout [SERVER]
-
SERVER
: Docker 注册表的服务器地址(默认是 Docker Hub)。
使用示例
1、退出 Docker Hub
docker logout
退出当前用户在 Docker Hub 的登录状态。
2、退出自定义注册表
docker logout myregistry.com
退出当前用户在 myregistry.com 的登录状态。
操作实例
1、登录 Docker Hub
docker login
输出:
1 | Username: myusername |
2、从标准输入读取密码登录 Docker Hub
echo "mypassword" | docker login --username myusername --password-stdin
输出:
Login Succeeded
3、登录自定义注册表
docker login myregistry.com
输出:
1 | Username: myusername |
4、退出 Docker Hub
docker logout
输出:
Removing login credentials for [https://index.docker.io/v1/](https://index.docker.io/v1/)
5、退出自定义注册表
docker logout myregistry.com
输出:
Removing login credentials for myregistry.com
注意事项
-
不推荐在命令行直接使用
-p
选项输入密码,因为这样密码会以明文形式暴露在命令历史记录中。 -
使用
--password-stdin
可以避免密码明文暴露,增强安全性。 -
确保在公共或共享环境中执行
docker logout
,以防止其他用户访问您的账户。
Docker pull 命令
docker pull
命令用于从 Docker 注册表(例如 Docker Hub)中拉取(下载)镜像到本地。
docker pull
命令允许用户获取所需的镜像以便在本地运行容器。
语法
docker pull [OPTIONS] NAME[:TAG|@DIGEST]
-
NAME
: 镜像名称,通常包含注册表地址(如docker.io/library/ubuntu
)。 -
TAG
(可选): 镜像标签,默认为latest
。 -
DIGEST
(可选): 镜像的 SHA256 摘要。
常用选项:
-
--all-tags, -a
: 下载指定镜像的所有标签。 -
--disable-content-trust
: 跳过镜像签名验证。
1、拉取默认标签(latest)的镜像
docker pull ubuntu
这会从 Docker Hub 拉取名为 ubuntu 的镜像,标签默认为 latest。
2、拉取特定标签的镜像
docker pull ubuntu:20.04
这会从 Docker Hub 拉取名为 ubuntu 的镜像,标签为 20.04。
3、拉取特定摘要的镜像
docker pull ubuntu@sha256:12345abcdef...
这会拉取具有特定 SHA256 摘要的 ubuntu 镜像。
4、拉取所有标签的镜像
docker pull --all-tags ubuntu
这会拉取 ubuntu 镜像的所有可用标签。
5、从自定义注册表拉取镜像
docker pull myregistry.com/myrepo/myimage:mytag
这会从 myregistry.com 注册表中拉取 myrepo 仓库中的 myimage 镜像,标签为 mytag。
实例
1、拉取 Ubuntu 镜像:
docker pull ubuntu
输出示例:
1 | Using default tag: latest |
2、拉取指定标签的 Ubuntu 镜像
docker pull ubuntu:20.04
输出示例:
1 | 20.04: Pulling from library/ubuntu |
注意事项
-
默认标签为
latest
,但最好显式指定标签以避免拉取意外的版本。 -
确保有足够的磁盘空间来存储拉取的镜像。
-
在生产环境中,建议使用镜像的摘要(digest)以确保镜像的唯一性和一致性。
docker pull
命令是获取 Docker 镜像的基本工具,通过指定镜像名称、标签或摘要,可以从 Docker 注册表中下载所需的镜像。
Docker push 命令
docker push
命令用于将本地构建的 Docker 镜像推送(上传)到 Docker 注册表(如 Docker Hub 或私有注册表)。这使得镜像可以在其他系统或环境中共享和使用。
语法
docker push [OPTIONS] NAME[:TAG]
-
NAME
: 镜像名称,通常包含注册表地址(如docker.io/myrepo/myimage
)。 -
TAG
(可选): 镜像标签,默认为latest
。
OPTIONS 说明:
-
–disable-content-trust :忽略镜像的校验,默认开启
1、推送默认标签(latest)的镜像
docker push myrepo/myimage
这会将本地的 myrepo/myimage:latest 镜像推送到 Docker Hub。
2、推送特定标签的镜像
docker push myrepo/myimage:1.0
这会将本地的 myrepo/myimage:1.0 镜像推送到 Docker Hub。
3、推送到自定义注册表
docker push myregistry.com/myrepo/myimage:mytag
这会将本地的 myrepo/myimage:mytag 镜像推送到 myregistry.com 注册表。
实例
推送镜像到 Docker Hub
1、登录到 Docker Hub
docker login
2、构建一个镜像
docker build -t myrepo/myimage:1.0 .
3、推送镜像到 Docker Hub
docker push myrepo/myimage:1.0
输出示例:
1 | The push refers to repository [docker.io/myrepo/myimage] |
推送镜像到自定义注册表
1、登录到自定义注册表
docker login myregistry.com
2、构建一个镜像
docker build -t myregistry.com/myrepo/myimage:mytag .
3、推送镜像到自定义注册表
docker push myregistry.com/myrepo/myimage:mytag
输出示例:
1 | The push refers to repository [myregistry.com/myrepo/myimage] |
注意事项
-
确保已登录到目标注册表(使用
docker login
命令)。 -
在推送镜像之前,确保镜像标签正确,并符合注册表的命名规范。
-
推送操作需要网络连接,镜像大小和网络速度会影响推送时间。
-
对于私有注册表,确保拥有相应的访问权限和配置信息。
docker push
命令是将本地 Docker 镜像推送到注册表的关键工具,通过使用这个命令,用户可以方便地共享、部署和管理 Docker 镜像。在使用时,确保正确登录和标签设置,以保证镜像能够正确推送到目标注册表。
Docker search 命令
docker search
命令用于在 Docker Hub 或其他注册表中搜索镜像。
docker search
命令帮助用户查找和获取所需的镜像,并提供了对搜索结果进行过滤和排序的功能。
语法
docker search [OPTIONS] TERM
-
TERM
: 要搜索的关键字。
常用选项:
-
–automated :只列出 automated build类型的镜像;
-
–no-trunc :显示完整的镜像描述;
-
-f <过滤条件>:列出收藏数不小于指定值的镜像。
1、搜索镜像
docker search ubuntu
这会在 Docker Hub 中搜索包含关键字 ubuntu 的镜像。
2、限制返回的搜索结果数量
docker search --limit 5 ubuntu
这会在 Docker Hub 中搜索包含关键字 ubuntu 的镜像,并只返回前 5 个结果。
3、过滤搜索结果
docker search --filter stars=50 ubuntu
这会在 Docker Hub 中搜索包含关键字 ubuntu 的镜像,并只返回 stars 数不低于 50 的镜像。
4、不截断输出
docker search --no-trunc ubuntu
这会在 Docker Hub 中搜索包含关键字 ubuntu 的镜像,并显示完整的镜像描述。
5、自定义格式输出
docker search --format "{{.Name}}: {{.StarCount}} stars" ubuntu
这会在 Docker Hub 中搜索包含关键字 ubuntu 的镜像,并以指定格式显示镜像名称和 star 数。
实例
1、搜索 Ubuntu 镜像
docker search ubuntu输出示例:
1 | NAME DESCRIPTION STARS OFFICIAL AUTOMATED |
参数说明:
NAME: 镜像仓库源的名称
DESCRIPTION: 镜像的描述
OFFICIAL: 是否 docker 官方发布
stars: 类似 Github 里面的 star,表示点赞、喜欢的意思。
AUTOMATED: 自动构建。
2、限制返回结果数量
docker search --limit 3 ubuntu输出示例:
1 | NAME DESCRIPTION STARS OFFICIAL AUTOMATED |
3、过滤搜索结果
docker search --filter stars=1000 ubuntu
输出示例:
1 | NAME DESCRIPTION STARS OFFICIAL AUTOMATED |
4、自定义格式输出
docker search --format "{{.Name}}: {{.StarCount}} stars" ubuntu
输出示例:
1 | ubuntu: 10000 stars |
注意事项
-
搜索结果可能包含大量镜像,可以使用过滤和排序选项来精简结果。
-
确保使用准确的关键字以获取相关结果。
-
docker search
默认搜索 Docker Hub,若需要搜索其他注册表,需相应配置 Docker 客户端。
docker search
命令是查找 Docker 镜像的重要工具,通过指定关键字和选项,用户可以高效地在 Docker 注册表中搜索和获取所需的镜像。这个命令适用于各种场景,包括查找特定功能的镜像、获取高评分镜像以及自定义结果显示。