Featured image of post 搭建并部署容器仓库

搭建并部署容器仓库

如何在本地搭建一个可用的Docker仓库

搭建容器仓库

为什么这么做

想象一下,你要拉一个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

时间流逝中|构建版本:58|构建时间:2024-08-25 22:42|Jenkins自动构建正常运行中
Built with Hugo
主题 StackJimmy 设计