docker 搭建本地私有仓库
1.使用registry镜像创建私有仓库
安装docker后,可以通过官方提供的 registry 镜像来简单搭建一套本地私有仓库环境:
docker run -d -p 5000:5000 registry:2
这将自动下载并启动一个 registry 容器,创建本地的私有仓库服务。
默认情况下,仓库会被创建在容器的 /var/lib/registry 目录下。可以通过 -v 参数来将镜像文件存放在本地的指定路径。例如下面的例子将上传的镜像放到 /opt/data/registry 目录:
docker run -d -p 5000:5000 -v /opt/registry/data:/var/lib/registry registry:2
此时在本地将启动一个私有的仓库服务,监听端口为 5000。
2.管理私有仓库
由于我实现pull拉去过centos的镜像,此处我就讲centos上传到私有仓库
① 使用 docker tag 命令将这个镜像标记为 192.168.0.109:5000/test-centos docker tag centos 192.168.0.109:5000/test-centos ② 使用 docker push 命令上传标记的镜像 docker push 192.168.0.109:5000/test-centos
由于 docker 私有仓库服务器,默认是基于https传输的,此时会出现以下异常
The push refers to repository [192.168.0.109:5000/test-centos] Get https://192.168.0.109:5000/v2/: http: server gave HTTP response to HTTPS client
查了一些资料说修改如下配置,可以不使用https传输
vi /etc/docker/daemon.json 将以下代码放入文件中并保存 "insecure-registries":["127.0.0.1:5000"] 修改后文件格式如下 { "registry-mirrors": ["https://njrds9qc.mirror.aliyuncs.com"], "insecure-registries": ["192.168.0.109:5000"] } 然后执行以下命令,重新启动docker systemctl daemon-reload systemctl restart docker
3.上传镜像
docker push 192.168.0.109:5000/test-centos
4.查看上传的镜像
① 访问一下地址
http://192.168.0.109:5000/v2/test-centos
②也可以查看镜像存放目录中是否存在
/opt/registry/data