191145686 发表于 2019-2-20 12:26:19

Docker 搭建本地仓库

  Docker Hub 公有仓库存在以下缺点:
1、网络依赖性强,链接速度限制;
2、私有化资料存放网络不安全
3、私有化仓库需要收费,存在安全风险
  解决方案使用本地registry
Docker已经讲registry开源了,同时在Docker Hub上也有官方镜像registry
我们可以直接使用:
(1)启动registry容器
shell>docker run -d -p 5000:5000 -v /myregistry:/var/lib/registry registry:2
使用registry:2的镜像
-d 后台运行
-p 讲容器的5000端口映射到主机的5000端口
-v 将容器/var/lib/registry目录映射到Host的/myregistry/docker,用于存放镜像数据
  验证:shell>docker ps   查看仓库容器是否启动
  (2)本地下载一个测试镜像
shell>docker pullcentos
  (3)通过docker tag 重命名本地镜像,与registry匹配
shell>docker tagcentos    仓库服务器地址:5000/用户名/centos:v1
shell>docker tagcentos    x.x.x.x:5000/testname/centos:v1
repository的完整格式为:

Docker Hub 上可以省略:,默认为docker.io
  (4)docker pull/push测试
shell>docker push   x.x.x.x:5000/testname/centos:v1
shell>docker pull   x.x.x.x:5000/testname/centos:v1
  (5)上传的镜像在该目录下
/myregistry/docker/registry/v2/repositories/docker39/cetnos_httpd/
  提示:
shell>docker pull x.x.x.x:5000/testname/cetnos
Using default tag: latest
Error response from daemon: Get https://x.x.x.x:5000/v2/: http: server gave HTTP response to HTTPS client
这是docker不支持https
centos系统通过:修改或者添加daemon.json文件,重启docker服务即可
shell>vim /etc/sysconfig/daemon.json
{"insecure-registries":["x.x.x.x:5000"]}
  shell>systemctlrestart docker   //重启服务后,记得启动registry仓库容器



页: [1]
查看完整版本: Docker 搭建本地仓库