Docker显示当前注册表

Vil*_*oja 12 docker docker-registry

在docker中,如何显示当前登录的当前注册表信息?我安装了docker,如果我现在做docker push,它在哪里发送我的图片?

我花了30多分钟从Google和Docker文档中搜索这些信息,但找不到它,所以我认为它应该有自己的问题.

Elt*_*man 14

没有"当前"注册表的概念 - 完整图像标记始终包含注册表地址,但如果未指定注册表,则Docker Hub将用作默认值.

所以docker push user/app推送到Docker Hub.如果要将其推送到本地注册表,则需要使用注册表地址对其进行显式标记:

docker tag user/app localhost:5000/user/app
docker push localhost:5000/user/app
Run Code Online (Sandbox Code Playgroud)

如果本地注册表是安全的,则需要运行docker login localhost:5000 但不会更改默认注册表.如果您在标签中推送或拉出没有注册表地址的图像,Docker将始终使用该集线器.

这个问题解释了基本原理.

  • 对,就是这样。假设您想要自己的 Ubuntu 基础镜像:`docker pull ubuntu` 可以从 Hub 获取官方镜像;`docker tag ubuntu localhost:5000/bases/ubuntu` 将其标记为本地注册表;`docker push localhost:5000/bases/ubuntu` 将其推送到本地。然后你调用`docker pull localhost:5000/bases/ubuntu`,或者在Dockerfiles中使用它:`FROM localhost:5000/bases/ubuntu` (2认同)

Mgc*_*con 5

docker images 的工作方式不是最明显的,但很容易解释。

您的图像将被发送到的位置必须在图像名称中定义。提交映像时,必须将其命名为 [registry-IP]:[registry-port]/[imagepath]/[image-name]

如果您已经创建了映像并且想要将其发送到本地注册表,则必须在推送之前将其标记为包括注册表路径:

docker tag [image-name] [registry-IP]:[registry-port]/[image-name]

docker push [registry-IP]:[registry-port]/[image-name]