我创建了自己的docker文件(运行一个shell脚本,打印“helloworld”),图像是“hellodocker”,标签是“mytag”。
bash-3.2$ docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
hellodocker mytag 3514c8dc11a8 39 minutes ago 2.433 MB
busybox buildroot-2013.08.1 d200959a3e91 10 weeks ago 2.489 MB
busybox ubuntu-14.04 37fca75d01ff 10 weeks ago 5.609 MB
busybox ubuntu-12.04 fd5373b3d938 10 weeks ago 5.455 MB
busybox buildroot-2014.02 a9eb17255234 10 weeks ago 2.433 MB
busybox latest a9eb17255234 10 weeks ago 2.433 MB
docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
97c29510069e hellodocker:mytag /bin/sh -c /Users/in 33 minutes ago Exited (127) 26 minutes ago happy_pasteur
8d04a1385c24 hellodocker:mytag /bin/sh -c /Users/in 37 minutes ago Exited (127) 30 minutes ago mad_bell
8998d61c0513 hellodocker:mytag /bin/sh -c /Users/in 37 minutes ago Exited (127) 30 minutes ago boring_thompson
64314c304a29 hellodocker:mytag /bin/sh -c /Users/in 37 minutes ago Exited (127) 31 minutes ago sad_wilson
8bc20e0555b8 hellodocker:mytag /bin/sh -c /Users/in 38 minutes ago Exited (127) 31 minutes ago sleepy_mayer
97664a4ba870 hellodocker:mytag . 38 minutes ago kickass_poincare
8bb752631cb6 busybox:buildroot-2014.02 /bin/echo Hello Doct 18 hours ago Exited (0) 18 hours ago dreamy_kowalevski
6aa66b55ca94 busybox:buildroot-2014.02 bash-3.2$ sudo docke 18 hours ago ecstatic_lovelace
2cc657f65342 busybox:buildroot-2014.02 /bin/echo Hello Dock 18 hours ago Exited (0) 18 hours ago dreamy_poincare
我如何将docker映像推送到dockerhub?我使用docker push <myuserid>/hellodocker
。这会给出一个“no such id”错误。我错过了什么?提前感谢。
3条答案
按热度按时间ggazkfy81#
您需要在构建时将其标记为
<myuser>/hellodocker
,例如或者创建绑定到同一图像的新标签,即,
g2ieeal72#
如果你想把
hellodocker
仓库放在myuserid
命名空间下,你必须先把本地的hellodocker
标记为myuserid
,如下所示:标签hellodocker我的用户ID/hellodocker
然后将此
myuserid/hellodocker
存储库推送到集线器,如下所示:我的用户名/hellodocker
nfs0ujit3#
首先进入你的Docker Hub账户并进行回购。下面是我的Docker Hub账户的截图:
从图片中,你可以看到我的回购是"创"
1)
docker commit <container ID> <repo name>/<Name you want to give the image>
是的,我认为它必须是容器ID。它可能不能是映像ID。
例如=
docker commit 99e078826312 chuangg/gene_commited_image
2)
docker run -it chaung/gene_commited_image
3)
docker login --username=<user username> --email=<user email address>
例如=
docker login --username=chuangg --email=gc.genechaung@gmail.com
是的,您必须先登录。使用"docker logout"退出
4)
docker push chuangg/gene_commited_image
注意,我使用了一个名为"build-docker"的Maven概要文件,如果你不想使用概要文件,只需删除
<profiles>, <profile>, and <id>build-docker</id>
元素。在父pom.xml中:
部署Docker映像的Docker终端命令(从pom.xml所在的目录)=
mvn clean deploy -Pbuild-docker docker:push
对于那些不使用Maven概要文件的用户,该命令将简单地为
mvn clean deploy docker:push
请注意,方法#2和#3之间的区别在于方法#3具有用于部署的额外
<execution>
。将这些内容添加到您的父pom.xml中:
转到C:\Users\Gene. docker\目录并将其添加到config.json文件中:
现在,在Docker快速入门终端中键入=
mvn clean install -Pbuild-docker
对于不使用配置文件的用户,只需键入
mvn clean install
下面是一个屏幕截图,如果它工作的话会是什么样子:
下面是完整的pom.xml和目录结构的屏幕截图:
下面是我的Eclipse目录:
下面是我的Dockerfile:
常见错误#1:
错误#1的解决方案=不要将
<execution>
与maven部署阶段同步,因为maven会尝试部署映像2x并在jar上放置时间戳。