dockerhub删除镜像_Docker镜像获取(gcr.io等)
在学习了Docker之后, 我们知道一般来说拉取镜像会非常简单:
docker pull ubuntu:latest
但是google的一些镜像由于墙的原因没有办法直接获取,这点在kubernetes使用过程中经常遇到,下面提供几种方法:
- 从Docker Hub搜索 (或者其他仓库)
如果没有配置的话,默认的仓库是Docker Hub
这里以 studyjob-controller 为例:
docker search studyjob-controller
里面会显示可以下载的镜像列表,一般来说,会有从google自动拉取的镜像:
docker pull <image you found> // 拉取镜像
docker tag <image you found> gcr.io/kubeflow-images-public/katib/studyjob-controller:v0.1.2-alpha-63-g9d59a10 // tag成google的镜像
docker rmi <image you found> // 删除原来的镜像(其实是untagged)
2. 从国内仓库中拉取,这里推荐阿里云的仓库
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/studyjob-controller:v0.1.2-alpha-63-g9d59a10
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/studyjob-controller:v0.1.2-alpha-63-g9d59a10 gcr.io/kubeflow-images-public/katib/studyjob-controller:v0.1.2-alpha-63-g9d59a10
docker rmi registry.cn-hangzhou.aliyuncs.com/google_containers/studyjob-controller:v0.1.2-alpha-63-g9d59a10
3. 最为简单的当然是挂代理了 :)
如果是kubernetes的话,记得把image的拉取策略改成 IfNotPresent, 不然的话还是会出现pod运行失败。
默认的镜像拉取策略是“IfNotPresent”,在镜像已经存在的情况下,kubelet将不在去拉取镜像。 如果总是想要拉取镜像,必须设置拉取策略为“Always”或者设置镜像标签为“:latest”。镜像kubernetes.io
如果没有指定镜像的标签,它会被假定为“:latest”,同时拉取策略为“Always”。