保存和分发镜像的最直接的方法就是使用Docker H u b,它是Docker公司维护的公共Regsitry,用户能够将本身的镜像保存到Docker H u b 免费的repository中。若是不但愿别人访问本身的镜像,也能够购买私有repository.
通常咱们可使用Docker H u b上传和下载镜像,虽然十分方便,可是仍是有些限制,好比:
一、须要外网链接,并且上传和下载速度慢
二、上传到Docker H u b 的镜像任何人都可以访问,虽然能够用私人repositroy,但不是免费的
三、由于安全缘由不少组织不容许将镜像放到外网docker
解决方法是单间本地的Registry。
Docker已经将Registry开源了,同时在Docker H u b上也有官方的镜像Registry。
咱们能够在Docker中运行本身的Registry安全
在使用仓库以前,首先咱们构建一个httpd镜像,保存到本地中
首先建立dockerfile目录和建立dokcerfile文件curl
cd ~ mkdir dokcerfile cd dockerfile touch dockerfie
按照以下编辑dockerfile
而后构建http镜像ide
docker build -t httpd:v11 -f dockerfile /root/dockerfile
以下所示,构建成功
检查镜像学习
docker images
首先在根目录下建立/myregistry目录用于存放镜像数据
本次使用镜像是registry:2ui
cd / mkdir /myregistry
使用以下命令建立registry容器url
docker run -d -p 5000:5000 -v /myregistry:/var/lib/registry registry:2
说明:
一、-d 后台启动容器
二、-p 将容器的5000端口映射到Host的5000端口。5000是registry服务端口
三、-v 将容器的/var/lib/regsitry目录映射给Host的/myregistry,用于存放镜像数据code
经过docker tag重命名镜像,使之与registry匹配,以下所示:blog
docker tag yangchao/httpd:v1 127.0.0.1:5000/yangchao/httpd:v1
将httpd:v11更改成Registry要求的格式,格式以下:dockerfile
只有Docker Hub上的镜像能够省略registry-host:[port]
按照以下方式,经过docker tag重命名镜像,使之与registry匹配
docker tag httpd:v11 127.0.0.1:5000/yangchao/httpd:v11
使用dokcer image命令检查镜像
而后将yangchao/httpd:v11上传到Registry
docker push 127.0.0.1:5000/yangchao/httpd:v11
而后查看Registry中的镜像
curl 127.0.0.1:5000/v2/_catalog
能够在/myregistry目录中查看相应的镜像至此本地registry就建立完毕