docker学习-构建本地Registry
  TEZNKK3IfmPf 2023年11月14日 56 0

保存和分发镜像的最直接的方法就是使用Docker H u b,它是Docker公司维护的公共Regsitry,用户可以将自己的镜像保存到Docker H u b 免费的repository中。如果不希望别人访问自己的镜像,也可以购买私有repository. 一般我们可以使用Docker H u b上传和下载镜像,虽然十分方便,但是还是有些限制,比如: 1、需要外网连接,而且上传和下载速度慢 2、上传到Docker H u b 的镜像任何人都能够访问,虽然可以用私人repositroy,但不是免费的 3、因为安全原因很多组织不允许将镜像放到外网

解决方法是单间本地的Registry。 Docker已经将Registry开源了,同时在Docker H u b上也有官方的镜像Registry。 我们可以在Docker中运行自己的Registry

使用dockerfile构建httpd

在使用仓库之前,首先我们构建一个httpd镜像,保存到本地中 首先创建dockerfile目录和创建dokcerfile文件

cd ~
mkdir dokcerfile 
cd dockerfile
touch dockerfie

按照如下编辑dockerfile 然后构建http镜像

docker build -t httpd:v11 -f dockerfile /root/dockerfile

如下所示,构建成功 检查镜像

docker images

启动registry容器

首先在根目录下创建/myregistry目录用于存放镜像数据 本次使用镜像是registry:2

cd /
mkdir /myregistry 

使用如下命令创建registry容器

docker run -d -p 5000:5000 -v /myregistry:/var/lib/registry registry:2

说明: 1、-d 后台启动容器 2、-p 将容器的5000端口映射到Host的5000端口。5000是registry服务端口 3、-v 将容器的/var/lib/regsitry目录映射给Host的/myregistry,用于存放镜像数据

通过docker tag重命名镜像,使之与registry匹配,如下所示:

docker tag yangchao/httpd:v1 127.0.0.1:5000/yangchao/httpd:v1

将httpd:v11更改为Registry要求的格式,格式如下: [registry-host]:[port]/[username]/[repository:tag] 只有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就创建完毕

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月14日 0

暂无评论

推荐阅读
  TEZNKK3IfmPf   2024年03月22日   62   0   0 容器Docker
  TEZNKK3IfmPf   2023年11月15日   42   0   0 redisDocker
  TEZNKK3IfmPf   2024年04月26日   59   0   0 Docker
  TEZNKK3IfmPf   2023年11月15日   38   0   0 redisDocker
  TEZNKK3IfmPf   2023年11月15日   44   0   0 Docker
  TEZNKK3IfmPf   2024年03月29日   100   0   0 Docker
TEZNKK3IfmPf