搭建容器仓库
为什么这么做
想象一下,你要拉一个K8S集群,有三个service绑定三个deployment,每个deployment绑定5个pod备份,你热更新一次,要下多久?嘿嘿,私有化部署就是为了这个。当然安装起来很简单的
安装docker仓库服务端
一条命令完事
-d
后台运行-p
映射端口 <本机>:<容器内>-v
映射路径 <本地路径>:<容器内路径>
docker run -d -p <本机端口>:<容器内端口> -v <本机存储位置>:<容器存储位置> registry:v2
docker run -d -p 7788:5000 -v /mnt:/var/lib/registry/docker registry:v2
修改Docker支持HTTP
在新版的Docker中,不支持使用HTTP来实现PULL,因此,你懂的,改配置文件。
事实上,生产环境都会自签名一个证书的。。。。
修改文件/etc/docker/deamon.json
具体内容如下
重点就是
insecure-registries
要写对
{
"registry-mirror": [
"https://registry.docker-cn.com"
],
"insecure-registries": [
"[私有仓库 ip:port]"
]
}
验证
使用浏览器访问127.0.0.1:7788/v2
,能看到一个json返回就没问题
上传到仓库
签出镜像
我们先需要把做好的镜像给签出到我们私有仓库的URL
正常来说,一个镜像长这样
ubuntu:12.2
我们从docker官网拉取的是docker.io/kitemoon/ubuntu:12.2
因此,我们需要把我们的前缀签出为<仓库URL>/<用户名>/<镜像名>:<版本>
这种格式 在本次中则是127.0.0.1:7788/kitemoon/ubuntu:12.2
签出的命令在上面有了[[容器概览#签出 打标签]],命令如下
docker tag <原名> <更新的名字>
docker tag ubuntu:12.2 127.0.0.1:7788/kitemoon/ubuntu:12.2
推送
推送就简单了,直接推上去就行了
docker push 127.0.0.1:7788/kitemoon/ubuntu:12.2