docker搭建私有仓库
服务端
对于持续集成环境的配置,Jenkins会发布大量的微服务, 要与多台机器进行交互, 可以采用docker镜像的保存与导出功能结合SSH实现, 但这样交互繁琐,稳定性差, 而且不便管理, 这里我们通过搭建Docker的私有仓库来实现, 这个有点类似GIT仓库, 集中统一管理资源, 由客户端拉取或更新。
sh
docker pull registry:latest
docker run -d -p 5000:5000 --name registry -v /root/docker/registry:/var/lib/registry registry:latest
查看仓库资源,可以访问地址:http://192.168.200.100:5000/v2/_catalog
删除镜像:
sh
cd /root/docker/registry/docker/registry/v2/repositories
# 删除想删除的镜像即可
rm -rf 镜像名称
客户端
正常生产环境中使用, 要配置HTTPS服务,从私有仓库拉取(pull)或推送(push)镜像时,Docker 默认会拒绝非加密(HTTP)的连接。内部开发或测试集成的局域网环境,可以采用简便的方式, 不做安全控制。
设置运行http请求拉取或推送镜像:(--insecure-registry 服务端ip:5000
也可以配置到daemon.json中)
sh
vi /lib/systemd/system/docker.service
# 服务端修改内容如下:这样服务端就可以从私有仓库直接push/pull镜像了
ExecStart=/usr/bin/dockerd --insecure-registry 服务端ip:5000
# 客户端修改内容如下:这样客户端就可以直接从私有仓库pull/poll镜像了
ExecStart=/usr/bin/dockerd --insecure-registry 服务端ip:5000
# 重启生效
systemctl daemon-reload
systemctl restart docker