为了更方便管理镜像,及在其它电脑间共享镜像,所以在本地搭建了个私有仓库。由于本人手头上的日常使用电脑没有linux系统的,所以直接在windows上搭建,技术是相通的,其实与操作系统无任何关系,主要的还是docker技术。
创建仓库需要registry镜像,可以直接运行docker pull registry进行就可以直接在官网下载,如果下载速度太慢或无法下载,可以考虑从网易蜂巢下载。
下载好registry后,直接执行以下命令即可完成本地私有仓库的建立
docker run -d -v F:/registry:/var/lib/registry -p 5000:5000 registry:2.5.1
注:-v数据卷挂载的路径为/var/lib/registry,否则没法保存数据,registry重启后已push的镜像会丢失。
执行以上命令前在windows需要配置“Shared Drives”,具体在setting中进行设置,选择相应的盘,比如F盘,然后点击“Apply”,如下图
registry的启动默认使用的是http,但平时使用docker push或者docker pull进行镜像操作时默认使用的是https,所以如果需要push镜像或者pull还需要修改配置,如下图中在配置中添加了"insecure-registries": [ "192.168.2.104:5000"],192.168.2.104为registry所在主机的IP地址,配置好后当从192.168.2.104:5000仓库上进行push或pull时,docker就使用http进行链接。
(ubuntu下修改/etc/docker/daemon.json文件,修改内容一致。)
registry启动成功后,可以在浏览器输入http://192.168.2.104:5000/v2看页面是否有“{}”输出,如果有则本地仓库创建成功。
接下来可以进行镜像的push和pull进行测试,首先需要创建镜像,比如hello-world镜像
docker tag hello-world 192.168.2.104:5000/hello-world:latest
然后就可以运行docker push 192.168.2.104:5000/hello-world进行上传,docker pull 192.168.2.104:5000/hello-world进行下载。
通过以上操作后,在本地电脑上进行测试肯定没多大问题了,但如果想在别的局域网电脑进行push和pull操作的话,可能还需要进行相关的防火墙关闭动作。比如我在自己的windows上就需要关闭防火墙后,别的电脑才可以访问。