为什么" docker push"推几张图片在哪里?

时间:2015-08-12 10:30:07

标签: docker dockerhub

我在名为alek/test的docker hub上有私人仓库。 在我的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 hub(屏幕)上的私人仓库没有任何改变。

enter image description here

我不确定我是否正确理解了docker hub。 我想要的是从Dockerfile构建图像并将其推送到我的仓库以使客户端可以将其拉到他身边并在容器中运行...

1 个答案:

答案 0 :(得分:5)

你理解正确。

图像中的每个图层都有一个图像,对应于Dockerfile中的每个指令。 Docker独立推送这些图层。

由于您没有指定标记,Docker将推送存储库中的所有标记(在本例中仅为0.1)。有权访问您的存储库的任何人都应该能够使用docker pull alek/test:0.1下载它。如果您查看集线器上的tags标签,则应该会在那里看到您的图片。

如果你做一个没有标签的docker push,我认为它会推动整个回购 - 即所有图像。如果您在没有标记的情况下执行docker rundocker pull,则会使用latest标记。因此,我认为0.1标记已被推送到您的案例中,但您需要说docker pull alek/test:0.1来提取它。