Docker的私有仓库创建与使用

127 阅读2分钟

一、安装步骤

1.1、直接从公共库上面下载register镜像在本地执行

#docker run -d -p 5000:5000 --name registry -v /opt/data/registry:/tmp/registry registry

注:docker默认的仓库镜像信息在/var/lib/registry中,所以在启动仓库时用这个目录

# docker run -d -p 5000:5000 --name registry -v /opt/data/registry:/var/lib/registry registry

1.2、把一个本地镜像push到私有仓库中

首先在客户机器下pull一个比较小的镜像来测试(此处使用的是busybox)。

# sudo docker pull busybox

1.3、修改该镜像tag

# docker tag docker.io/busybox 192.168.8.2:5000/busybox

1.4、把打了tag的镜像上传到私有仓库

# docker push 192.168.8.2:5000/busybox

注:因为Docker从1.3.X之后,与docker registry交互默认使用的是https,然而此处搭建的私有仓库只提供http服务,所以当与私有仓库交互时就会报上面的错误。为了解决这个问题需要在启动docker server时增加启动参数为默认使用http访问。修改docker启动配置文件(此处是修改客户机器的配置)Ubuntu下配置文件地址为:/etc/init/docker.conf,在其中增加–insecure-registry 192.168.8.2:5000如下所示:

解决方案:

# sudo vi /etc/init/docker.conf

或是添加到docker的daemon.json中,如:

insecure-registries

修改/etc/sysconfig/docker文件,并重新启动docker服务。

ADD_REGISTRY='--add-registry 10.100.50.120:5000'

INSECURE_REGISTRY='--insecure-registry 10.100.50.120:5000'

之后重启docker

1.5、重启完之后我们再次运行推送命令。

1.5.1、把本地镜像推送到私有服务器上

# docker push 192.168.8.2:5000/busybox

1.5.2、在私人仓库里面搜索镜像也出错:Unexpected status code 404 #搜索docker镜像的时候返回404错误,找不到镜像。

# docker search 192.168.8.2:5000/busybox

查看官方文档,当前版本不支持搜索,可以利用V2版本尝试。

# docker run -d -p 5000:5000 --name registry -v /opt/data/registry:/tmp/registry registry:2

还是不能提供搜索功能,同样不能搜索,还是一样的错误。官方文档说的是,可以支持API。

尝试一下。

# curl http://192.168.8.2:5000/v2/_catalog

# curl http://192.168.8.2:5000/v2/image_name/tags/list

如果你想了解更多内容,欢迎访问我的CSDN博客:blog.csdn.net/myself88129 这里分享了许多技术文章和心得,让我们一起学习,共同进步。期待你的到来!