推送本地镜像到Docker Hub上你的镜像库中,然后再镜像从镜像库中拉取到本地,并运行它。
推送镜像到镜像库
查看本地所有镜像
1 | root@iZ23ldh8kudZ:~/code/mydockerbuild# docker images |
找到镜像ID
以docker-whale
镜像为例,它的镜像ID是efb18db73358
现在, docker-whale镜像还没有命名空间, 你需要关联一个命名空间, 命名空间就是你的Docker Hub账户名(我的是kangyonggan, 然后给镜像名添加命名空间,比如: kangyonggan/docker-whale
用docker tag
命令给镜像添加标签(命名空间)
1 | root@iZ23ldh8kudZ:~/code/mydockerbuild# docker tag efb18db73358 kangyonggan/docker-whale:latest |
4. 再次运行docker images
会发现镜像已经有了标签
1 | root@iZ23ldh8kudZ:~/code/mydockerbuild# docker images |
还会发现,相同的镜像ID存在于两个不同的镜像库。
登录Docker Hub
在最终把镜像推送到Docker Hub上之前,你需要登录Docker Hub。
1 | root@iZ23ldh8kudZ:~/code/mydockerbuild# docker login |
把镜像推送到自己的Docker Hub上
1 | root@iZ23ldh8kudZ:~/code/mydockerbuild# docker push kangyonggan/docker-whale |
网速有点慢(目测要翻墙才能快),才推送了5/28M。
登录Docker Hub查看新推送的镜像
由于网速太慢(怀疑是官网太慢),截图的时候还没推送完成。
从镜像库拉取镜像
docker pull
是用来拉取镜像的,如果本地已经有最新版的镜像,docker pull
命令将什么也不做,为了验证是真正的从镜像库中拉取下来的,你可以先删除本地镜像docker image remove
。
用docker image remove
删除本地镜像
1 | root@iZ23ldh8kudZ:~/code/mydockerbuild# docker images |
通过镜像ID删除一个本地镜像,可能会报错,如果此时你又两个ID一样的镜像,另外也可以通过镜像标签删除镜像。
1 | root@iZ23ldh8kudZ:~/code/mydockerbuild# docker image remove docker-whale2 |
用docker run
命令从Docker Hub拉取镜像,当你本地没这个镜像的时候。
1 | root@iZ23ldh8kudZ:~/code/mydockerbuild# docker run kangyonggan/docker-whale |
更多用法请移步:https://docs.docker.com/engine/getstarted/last_page/