docker registry仓库转移及https启动
一、docker registry私有仓库搭建docker肯定是必备环境docker run -d -p 5000:5000 registry该命令会到docker hup上拉取最新registry镜像启动,映射端口为5000访问:http://localhost:5000/v2/_catalog查看镜像库里有哪些镜像,刚启动当然是空的,这样一个简单的私有仓库就搭建好了二、上传镜像docker t
·
一、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协议的仓库上,下载镜像,解决方法有两种
- 修改docker的配置,把私有仓库地址加入白名单
linux修改/etc/docker/daemon.json
文件,在"insecure-registries"
数组中加入不安全的仓库地址["127.0.0.1:5000"]
,这就相当于加入白名单了,改完保存,重启docker(systemctl restart docker
),之后docker能从该仓库拉取镜像,也可推送镜像到该仓库 - 加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
,作为镜像存储目录,之后把该目录拷贝到另一台机器,同样映射启动仓库,原仓库镜像即可在新仓库还原,主要用于离线部署应用或者转移仓库。
更多推荐
所有评论(0)