私有仓库

有时候使用 Docker Hub 这样的公共仓库可能不方便,用户可以创建一个本地仓库供私人使用。
本节介绍如何使用本地仓库。
docker-registry 是官方提供的工具,可以用于构建私有的镜像仓库。
安装运行 docker-registry
容器运行
在安装了 Docker 后,可以通过获取官方 registry 镜像来运行。
$ sudo docker run -d -p 5000:5000 registry
这将使用官方的 registry 镜像来启动本地的私有仓库。 用户可以通过指定参数来配置私有仓库位置,例如配置镜像存储到 Amazon S3 服务。
$ sudo docker run \ -e SETTINGS_FLAVOR=s3 \ -e AWS_BUCKET=acme-docker \ -e STORAGE_PATH=/registry \ -e AWS_KEY=AKIAHSHB43HS3J92MXZ \ -e AWS_SECRET=xdDowwlK7TJajV1Y7EoOZrmuPEJlHYcNP2k4j49T \ -e SEARCH_BACKEND=sqlalchemy \ -p 5000:5000 \ registry
此外,还可以指定本地路径(如 /home/user/registry-conf )下的配置文件。
$ sudo docker run -d -p 5000:5000 -v /home/user/registry-conf:/registry-conf -e DOCKER_REGISTRY_CONFIG=/registry-conf/config.yml registry
默认情况下,仓库会被创建在容器的 /tmp/registry 下。可以通过 -v 参数来将镜像文件存放在本地的指定路径。 例如下面的例子将上传的镜像放到 /opt/data/registry 目录。
$ sudo docker run -d -p 5000:5000 -v /opt/data/registry:/tmp/registry registry
本地安装
对于 Ubuntu 或 CentOS 等发行版,可以直接通过源安装。
Ubuntu
$ sudo apt-get install -y build-essential python-dev libevent-dev python-pip liblzma-dev $ sudo pip install docker-registry
CentOS
$ sudo yum install -y python-devel libevent-devel python-pip gcc xz-devel $ sudo python-pip install docker-registry
也可以从 docker-registry 项目下载源码进行安装。
$ sudo apt-get install build-essential python-dev libevent-dev python-pip libssl-dev liblzma-dev libffi-dev $ git clone https://github.com/docker/docker-registry.git $ cd docker-registry $ sudo python setup.py install
然后修改配置文件,主要修改 dev 模板段的 storage_path 到本地的存储仓库的路径。
$ cp config/config_sample.yml config/config.yml
之后启动 Web 服务。
$ sudo gunicorn -c contrib/gunicorn.py docker_registry.wsgi:application
或者
$ sudo gunicorn --access-logfile - --error-logfile - -k gevent -b 0.0.0.0:5000 -w 4 --max-requests 100 docker_registry.wsgi:application
此时使用 curl 访问本地的 5000 端口,看到输出 docker-registry 的版本信息说明运行成功。
注:config/config_sample.yml 文件是示例配置文件。
在私有仓库上传、下载、搜索镜像
创建好私有仓库之后,就可以使用 docker tag 来标记一个镜像,然后推送它到仓库,别的机器上就可以下载下来了。例如私有仓库地址为 192.168.7.26:5000。
先在本机查看已有的镜像。
$ sudo docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE ubuntu latest ba5877dc9bec 6 weeks ago 192.7 MB ubuntu 14.04 ba5877dc9bec 6 weeks ago 192.7 MB
使用docker tag 将 ba58 这个镜像标记为 192.168.7.26:5000/test(格式为 docker tag IMAGE[:TAG] [REGISTRYHOST/][USERNAME/]NAME[:TAG])。
$ sudo docker tag ba58 192.168.7.26:5000/test root ~ # docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE ubuntu 14.04 ba5877dc9bec 6 weeks ago 192.7 MB ubuntu latest ba5877dc9bec 6 weeks ago 192.7 MB 192.168.7.26:5000/test latest ba5877dc9bec 6 weeks ago 192.7 MB
使用 docker push 上传标记的镜像。
$ sudo docker push 192.168.7.26:5000/test
The push refers to a repository [192.168.7.26:5000/test] (len: 1)
Sending image list
Pushing repository 192.168.7.26:5000/test (1 tags)
Image 511136ea3c5a already pushed, skipping
Image 9bad880da3d2 already pushed, skipping
Image 25f11f5fb0cb already pushed, skipping
Image ebc34468f71d already pushed, skipping
Image 2318d26665ef already pushed, skipping
Image ba5877dc9bec already pushed, skipping
Pushing tag for rev [ba5877dc9bec] on {http://192.168.7.26:5000/v1/repositories/test/tags/latest}
用 curl 查看仓库中的镜像。
$ curl http://192.168.7.26:5000/v1/search
{"num_results": 7, "query": "", "results":
[{"description": "", "name": "library/miaxis_j2ee"},
{"description": "", "name": "library/tomcat"},
{"description": "", "name": "library/ubuntu"},
{"description": "", "name": "library/ubuntu_office"},
{"description": "", "name": "library/desktop_ubu"},
{"description": "", "name": "dockerfile/ubuntu"},
{"description": "", "name": "library/test"}]}
这里可以看到 {"description": "", "name": "library/test"},表明镜像已经被成功上传了。
现在可以到另外一台机器去下载这个镜像。
$ sudo docker pull 192.168.7.26:5000/test Pulling repository 192.168.7.26:5000/test ba5877dc9bec: Download complete 511136ea3c5a: Download complete 9bad880da3d2: Download complete 25f11f5fb0cb: Download complete ebc34468f71d: Download complete 2318d26665ef: Download complete $ sudo docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE 192.168.7.26:5000/test latest ba5877dc9bec 6 weeks ago 192.7 MB
可以使用 这个脚本 批量上传本地的镜像到注册服务器中,默认是本地注册服务器 127.0.0.1:5000。例如:
$ wget https://github.com/yeasy/docker_practice/raw/master/_local/push_images.sh; sudo chmod a+x push_images.sh
$ ./push_images.sh ubuntu:latest centos:centos7
The registry server is 127.0.0.1
Uploading ubuntu:latest...
The push refers to a repository [127.0.0.1:5000/ubuntu] (len: 1)
Sending image list
Pushing repository 127.0.0.1:5000/ubuntu (1 tags)
Image 511136ea3c5a already pushed, skipping
Image bfb8b5a2ad34 already pushed, skipping
Image c1f3bdbd8355 already pushed, skipping
Image 897578f527ae already pushed, skipping
Image 9387bcc9826e already pushed, skipping
Image 809ed259f845 already pushed, skipping
Image 96864a7d2df3 already pushed, skipping
Pushing tag for rev [96864a7d2df3] on {http://127.0.0.1:5000/v1/repositories/ubuntu/tags/latest}
Untagged: 127.0.0.1:5000/ubuntu:latest
Done
Uploading centos:centos7...
The push refers to a repository [127.0.0.1:5000/centos] (len: 1)
Sending image list
Pushing repository 127.0.0.1:5000/centos (1 tags)
Image 511136ea3c5a already pushed, skipping
34e94e67e63a: Image successfully pushed
70214e5d0a90: Image successfully pushed
Pushing tag for rev [70214e5d0a90] on {http://127.0.0.1:5000/v1/repositories/centos/tags/centos7}
Untagged: 127.0.0.1:5000/centos:centos7
Done
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
# Docker
# 私有仓库
# 私有仓库详解
# 私有仓库基础知识
# Docker私有仓库管理和删除本地仓库中的镜像
# Docker搭建本地私有仓库的详细步骤
# Docker Registry 私有仓库搭建详细步骤
# 详解docker私有仓库搭建与使用实战
# docker创建私有镜像仓库搭建教程
# Docker如何搭建私有镜像仓库
# Docker私有仓库Harbor介绍和部署方法详解
# 详解基于Harbor搭建Docker私有镜像仓库
# Docker私有仓库Registry部署的实现
# Docker搭建私有镜像仓库的方法
# Docker 镜像的公有与私有仓库的具体使用
# 镜像
# 可以通过
# 上传
# 配置文件
# 放在
# 还可以
# 一台
# 希望能
# 可以看到
# 可以直接
# 可以使用
# 用户可以
# 谢谢大家
# 本机
# 先在
# 这将
# 传了
# 如何使用
# 可以下载
# 创建一个
相关文章:
制作网站的基本流程,设计网站的软件是什么?
无锡制作网站公司有哪些,无锡优八网络科技有限公司介绍?
建站之星各版本价格是多少?
赚钱网站制作软件,建一个网站怎样才能赚钱?是如何盈利的?
常州企业网站制作公司,全国继续教育网怎么登录?
视频网站app制作软件,有什么好的视频聊天网站或者软件?
攀枝花网站建设,攀枝花营业执照网上怎么年审?
php json中文编码为null的解决办法
Dapper的Execute方法的返回值是什么意思 Dapper Execute返回值详解
建站之星logo尺寸如何设置最合适?
建站之星如何快速更换网站模板?
如何在阿里云购买域名并搭建网站?
宠物网站制作html代码,有没有专门介绍宠物如何养的网站啊?
如何在橙子建站中快速调整背景颜色?
如何快速生成专业多端适配建站电话?
移动端手机网站制作软件,掌上时代,移动端网站的谷歌SEO该如何做?
建站主机空间推荐 高性价比配置与快速部署方案解析
中山网站制作网页,中山新生登记系统登记流程?
如何用PHP快速搭建高效网站?分步指南
制作营销网站公司,淘特是干什么用的?
海南网站制作公司有哪些,海口网是哪家的?
专业网站制作企业网站,如何制作一个企业网站,建设网站的基本步骤有哪些?
IOS倒计时设置UIButton标题title的抖动问题
成都品牌网站制作公司,成都营业执照年报网上怎么办理?
如何高效搭建专业期货交易平台网站?
岳西云建站教程与模板下载_一站式快速建站系统操作指南
如何续费美橙建站之星域名及服务?
如何在Mac上搭建Golang开发环境_使用Homebrew安装和管理Go版本
建站之星2.7模板:企业网站建设与h5定制设计专题
如何在建站宝盒中设置产品搜索功能?
定制建站平台哪家好?企业官网搭建与快速建站方案推荐
如何选择适合PHP云建站的开源框架?
网站制作模板下载什么软件,ppt模板免费下载网站?
制作网站的软件下载免费,今日头条开宝箱老是需要下载怎么回事?
rsync同步时出现rsync: failed to set times on “xxxx”: Operation not permitted
学校为何禁止电信移动建设网站?
宝塔新建站点报错如何解决?
学校建站服务器如何选型才能满足性能需求?
整人网站在线制作软件,整蛊网站退不出去必须要打我是白痴才能出去?
c++ stringstream用法详解_c++字符串与数字转换利器
文字头像制作网站推荐软件,醒图能自动配文字吗?
网站制作软件有哪些,制图软件有哪些?
网站海报制作教学视频教程,有什么免费的高清可商用图片网站,用于海报设计?
小建面朝正北,A点实际方位是否存在偏差?
建站之星免费模板:自助建站系统与智能响应式一键生成
北京网页设计制作网站有哪些,继续教育自动播放怎么设置?
电视网站制作tvbox接口,云海电视怎样自定义添加电视源?
如何高效完成自助建站业务培训?
建站主机服务器选购指南:轻量应用与VPS配置解析
高性能网站服务器部署指南:稳定运行与安全配置优化方案
*请认真填写需求信息,我们会在24小时内与您取得联系。