一、docker registry私有仓库搭建

首先要安装docker,有docker环境,安装docker过程这里不赘述了。

docker run -d -p 5000:5000 registry

该命令会到docker hub上拉取最新registry镜像启动,映射端口为5000
访问:http://localhost:5000/v2/_catalog
查看镜像库里有哪些镜像,刚启动当然是空的,这样一个简单的私有仓库就搭建好了

二、上传镜像

docker tag registry 127.0.0.1:5000/registry
docker push 127.0.0.1:5000/registry
  • 通过docker tag命令修改本地镜像名称;
  • 127.0.0.1:5000即为仓库地址,推荐使用机器ip地址;
  • 使用docker push 命令推送本地镜像到仓库;

三、拉取镜像

docker pull 127.0.0.1:5000/registry

这里只是演示,拉取当然要换一台机器,使用docker pull ip:5000/registry(ps:打tag的时候也是ip:5000),不过在执行的时候,会报错……,因为出于安全考虑docker不允许从http协议的仓库上,下载镜像,解决方法有两种

  1. 修改docker的配置,把私有仓库地址加入白名单
    linux修改/etc/docker/daemon.json文件,在"insecure-registries"数组中加入不安全的仓库地址["127.0.0.1:5000"],这就相当于加入白名单了,改完保存,重启docker(systemctl restart docker),之后docker能从该仓库拉取镜像,也可推送镜像到该仓库
  2. 加https证书,使仓库https可访问,当然证书得有效
    证书需要花钱,但有些时候需要使用这种方式,比如不能重启docker的时候,有证书就比较简单了
docker run -d -p 443:5000   \
-v H:/registry/certs:/certs  \
-e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/brain.crt  \
-e REGISTRY_HTTP_TLS_KEY=/certs/brain.key registry

H:/registry/certs是证书所在目录,目录下包含.crt公钥和.key私钥两个文件,启动仓库后,即可使用域名访问了,如果没有外网域名,可以配置host

四、镜像库迁移

docker run -d -p 443:5000   \
-v H:/registry/project-images:/var/lib/registry     

映射本地目录H:/registry/project-images,作为镜像存储目录,之后把该目录拷贝到另一台机器,同样映射启动仓库,原仓库镜像即可在新仓库还原,主要用于离线部署应用或者转移仓库。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐