为什么 "docker push" 推送多张图片,推送到哪里?
Why does "docker push" push several images and where?
我在名为 alek/test
的 docker 集线器上有私人仓库。
在我的 Mac:
$ docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
alek/test 0.1 dc1a7cc41129 33 minutes ago 643 MB
node 0.12.7 9e20baae42c8 5 days ago 641.6 MB
$ docker push alek/test
The push refers to a repository [docker.io/alek/test] (len: 1)
dc1a7cc41129: Image successfully pushed
537a913fe639: Image successfully pushed
b40236e9037f: Image successfully pushed
53c8b1d50397: Image successfully pushed
e8c37c1e2189: Image successfully pushed
68bbfd9543a7: Image successfully pushed
9e20baae42c8: Image already exists
8b74d7a75802: Image successfully pushed
3383909e8f95: Image already exists
e0919a8b95a8: Image already exists
6ad0799af6bd: Image successfully pushed
9213e81cb0f2: Image successfully pushed
607e965985c1: Image successfully pushed
1ff9f26f09fb: Image successfully pushed
9a61b6b1315e: Image already exists
902b87aaaec9: Image successfully pushed
0.1: digest: sha256:a2b1d8a3b283f13e8d6a1407e886ca8ee62d93377949e050b9e05509ce6aaf86 size: 30568
刚刚发生了什么???为什么推送了好几张图?还有它们实际被推送的地方——我在 docker 集线器(屏幕)上的私人回购没有任何改变。
我不确定我是否正确理解 docker 集线器。
我想要的是从 Dockerfile 构建图像并将其推送到我的存储库,以便客户端可以将其拉到他身边并 运行 在容器中...
你没看错。
图像中的每一层都有一个图像,对应于Docker文件中的每条指令。 Docker 独立推送这些层。
由于您没有指定标签,Docker 将推送存储库中的所有标签(在本例中仅为 0.1)。任何有权访问您的存储库的人都应该能够使用 docker pull alek/test:0.1
下载它。如果您查看 Hub 上的 tags
选项卡,您应该会在那里看到您的图像。
如果你在没有标签的情况下执行 docker push
,我认为它会推动整个回购 - 即所有图像。如果您在没有标签的情况下执行 docker run
或 docker pull
,它将使用 latest
标签。所以我假设 0.1
标签在你的情况下被推送了,但你需要说 docker pull alek/test:0.1
来拉它。
我在名为 alek/test
的 docker 集线器上有私人仓库。
在我的 Mac:
$ docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
alek/test 0.1 dc1a7cc41129 33 minutes ago 643 MB
node 0.12.7 9e20baae42c8 5 days ago 641.6 MB
$ docker push alek/test
The push refers to a repository [docker.io/alek/test] (len: 1)
dc1a7cc41129: Image successfully pushed
537a913fe639: Image successfully pushed
b40236e9037f: Image successfully pushed
53c8b1d50397: Image successfully pushed
e8c37c1e2189: Image successfully pushed
68bbfd9543a7: Image successfully pushed
9e20baae42c8: Image already exists
8b74d7a75802: Image successfully pushed
3383909e8f95: Image already exists
e0919a8b95a8: Image already exists
6ad0799af6bd: Image successfully pushed
9213e81cb0f2: Image successfully pushed
607e965985c1: Image successfully pushed
1ff9f26f09fb: Image successfully pushed
9a61b6b1315e: Image already exists
902b87aaaec9: Image successfully pushed
0.1: digest: sha256:a2b1d8a3b283f13e8d6a1407e886ca8ee62d93377949e050b9e05509ce6aaf86 size: 30568
刚刚发生了什么???为什么推送了好几张图?还有它们实际被推送的地方——我在 docker 集线器(屏幕)上的私人回购没有任何改变。
我不确定我是否正确理解 docker 集线器。 我想要的是从 Dockerfile 构建图像并将其推送到我的存储库,以便客户端可以将其拉到他身边并 运行 在容器中...
你没看错。
图像中的每一层都有一个图像,对应于Docker文件中的每条指令。 Docker 独立推送这些层。
由于您没有指定标签,Docker 将推送存储库中的所有标签(在本例中仅为 0.1)。任何有权访问您的存储库的人都应该能够使用 docker pull alek/test:0.1
下载它。如果您查看 Hub 上的 tags
选项卡,您应该会在那里看到您的图像。
如果你在没有标签的情况下执行 docker push
,我认为它会推动整个回购 - 即所有图像。如果您在没有标签的情况下执行 docker run
或 docker pull
,它将使用 latest
标签。所以我假设 0.1
标签在你的情况下被推送了,但你需要说 docker pull alek/test:0.1
来拉它。