Docker 私有仓库创建与使用

废话少说,直接上来就是操作步骤,简单明了。

Docker 私有仓库

1、安装步骤

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

Docker 私有仓库创建与使用

1.2、接下来我们就要操作把一个本地镜像push到私有仓库中。首先在客户机器下pull一个比较小的镜像来测试(此处使用的是busybox)。

# sudo docker pull busybox

Docker 私有仓库创建与使用

1.3、修改该镜像tag

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

Docker 私有仓库创建与使用

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

# docker push192.168.8.2:5000/busybox

Docker 私有仓库创建与使用

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

解决方案:

# sudo vi/etc/init/docker.conf

Docker 私有仓库创建与使用

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

Docker 私有仓库创建与使用

insecure-registries

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

ADD_REGISTRY='--add-registry10.100.50.120:5000'

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

之后重启docker

注:其中的10.100.50.120是你的私有仓库的地址,我用的是:192.168.8.2以上IP是我们做其它测试给的IP,根据实际情况进行修改即可。

Docker 私有仓库创建与使用

1.5、重启完之后我们再次运行推送命令,把本地镜像推送到私有服务器上。

# dockerpush 192.168.8.2:5000/busybox

Docker 私有仓库创建与使用

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

 dockersearch 192.168.8.2:5000/busybox

Docker 私有仓库创建与使用

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

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

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

# curlhttp://192.168.8.2:5000/v2/_catalog

# curlhttp://192.168.8.2:5000/v2/image_name/tags/list

http://192.168.8.2:5000/v2/_catalog

Docker 私有仓库创建与使用

http://192.168.8.2:5000/v2/apache/tags/list

Docker 私有仓库创建与使用