使用Docker registry镜像创建私有仓库的方法
安装Docker后,可以通过官方提供的registry镜像来简单搭建一套本地私有仓库环境,本文记录简单的搭建过程。
1使用registry启动私有仓库的容器
dockerrun-d-p5000:5000-v/root/my_registry:/tmp/registryregistry
说明:若之前没有安装registry容器则会自动下载并启动一个registry容器,创建本地的私有仓库服务。默认情况下,会将仓库创建在容器的/tmp/registry目录下,可以通过-v参数来将镜像文件存放在本地的指定路径上(例如,放在本地目录/root/my_registry下)。
2向私有仓库push镜像
dockerpush104.131.173.242:5000/ubuntu_sshd_gcc_gerry:14.04
说明:根据第一步启动的registry容器所在宿主主机的IP和Port,push某环境的本地容器。
root@gerryyang:~#dockerpush104.131.173.242:5000/ubuntu_sshd_gcc_gerry:14.04 Thepushreferstoarepository[104.131.173.242:5000/ubuntu_sshd_gcc_gerry](len:1) Sendingimagelist Pushingrepository104.131.173.242:5000/ubuntu_sshd_gcc_gerry(1tags) 511136ea3c5a:Imagesuccessfullypushed 3b363fd9d7da:Imagesuccessfullypushed 607c5d1cca71:Imagesuccessfullypushed f62feddc05dc:Imagesuccessfullypushed 8eaa4ff06b53:Imagesuccessfullypushed 894c0161121f:Imagesuccessfullypushed a45787b0222f:Imagesuccessfullypushed f0e3262ed661:Imagesuccessfullypushed Pushingtagforrev[f0e3262ed661]on{http://104.131.173.242:5000/v1/repositories/ubuntu_sshd_gcc_gerry/tags/14.04}
宿主主机my_registry的目录结构
root@gerryyang:~/my_registry#tree . ├──images │├──3b363fd9d7dab4db9591058a3f43e806f6fa6f7e2744b63b2df4b84eadb0685a ││├──ancestry ││├──_checksum ││├──json ││└──layer │├──511136ea3c5a64f264b78b5433614aec563103b4d4702f3ba7d4d2698e22c158 ││├──ancestry ││├──_checksum ││├──json ││└──layer │├──607c5d1cca71dd3b6c04327c3903363079b72ab3e5e4289d74fb00a9ac7ec2aa ││├──ancestry ││├──_checksum ││├──json ││└──layer │├──894c0161121f105ac9b81bca7ac583ac1f29772625911db0fa2b6b475f5642fd ││├──ancestry ││├──_checksum ││├──json ││└──layer │├──8eaa4ff06b53ff7730c4d7a7e21b4426a4b46dee064ca2d5d90d757dc7ea040a ││├──ancestry ││├──_checksum ││├──json ││└──layer │├──a45787b0222f955d68d9db34fb18033144b8a78015d9e306a1613894da0fd86e ││├──ancestry ││├──_checksum ││├──json ││└──layer │├──f0e3262ed6617896b306852c923e4c0e1d359b58b29a02ef849c4b8978c73c65 ││├──ancestry ││├──_checksum ││├──json ││└──layer │└──f62feddc05dc67da9b725361f97d7ae72a32e355ce1585f9a60d090289120f73 │├──ancestry │├──_checksum │├──json │└──layer └──repositories └──library └──ubuntu_sshd_gcc_gerry ├──_index_images ├──tag_14.04 └──tag14.04_json 12directories,35files
关于https的问题
root@gerryyang:~#dockerpush104.131.173.242:5000/ubuntu_sshd_gcc_gerry:14.04 FATA[0002]Error:Invalidregistryendpointhttps://104.131.173.242:5000/v1/:Gethttps://104.131.173.242:5000/v1/_ping:EOF.IfthisprivateregistrysupportsonlyHTTPorHTTPSwithanunknownCAcertificate,pleaseadd`--insecure-registry104.131.173.242:5000`tothedaemon'sarguments.InthecaseofHTTPS,ifyouhaveaccesstotheregistry'sCAcertificate,noneedfortheflag;simplyplacetheCAcertificateat/etc/docker/certs.d/104.131.173.242:5000/ca.crt
解决方法:
修改Docker配置文件
vim/etc/default/docker
增加以下一行
DOCKER_OPTS="$DOCKER_OPTS--insecure-registry=104.131.173.242:5000"
重启Docker
sudoservicedockerrestart
3私有仓库查询方法
curlhttp://104.131.173.242:5000/v1/search
说明:使用curl查看仓库104.131.173.242:5000中的镜像。在结果中可以查看到ubuntu_sshd_gcc_gerry,说明已经上传成功了。
gerryyang@mba:personal_repository$curlhttp://104.131.173.242:5000/v1/search {"num_results":0,"query":"","results":[]} gerryyang@mba:personal_repository$curlhttp://104.131.173.242:5000/v1/search {"num_results":1,"query":"","results":[{"description":"","name":"library/ubuntu_sshd_gcc_gerry"}]}
4在其他的机器上访问和下载私有仓库的镜像
dockerpull104.131.173.242:5000/ubuntu_sshd_gcc_gerry:14.04
root@gerryyang:~#dockerpull104.131.173.242:5000/ubuntu_sshd_gcc_gerry:14.04 Pullingrepository104.131.173.242:5000/ubuntu_sshd_gcc_gerry f0e3262ed661:Downloadcomplete 511136ea3c5a:Downloadcomplete 3b363fd9d7da:Downloadcomplete 607c5d1cca71:Downloadcomplete f62feddc05dc:Downloadcomplete 8eaa4ff06b53:Downloadcomplete 894c0161121f:Downloadcomplete a45787b0222f:Downloadcomplete Status:Imageisuptodatefor104.131.173.242:5000/ubuntu_sshd_gcc_gerry:14.04
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。