Docker搭建私有库

使用centos6.5搭建属于自己的docker私有库
1.搭建启动docker
首先,我们需要下载docker到centos
yum install docker-io
中间需要输出y回车进行确定。
当下载完成后,启动docker
service docker start
如果提示启动不了,那么我们更新一下依赖的包,如果启动正常不需要执行下面的命令
yum upgrade device-mapper-libs  
中间同样需要输入y确定
更新完过后,我们再次启动docker
service docker restart或service docker start
如下图查看版本说明启动成功。
docker私有库搭建(Centos6.5完整) - Wang - Wang的博客
 
接下面进入正题,搭建docker私有库,不明思议,从官方下载的images由于各种原因,速度奇慢无比,所以,搭建私有库很有必要。
2.搭建dokcer私有库
推荐使用下面的命令启动,/tmp/registry registry为默认路径,我们需要映射该路径,即让镜像真正保存到本地磁盘上。
docker run -d -p 5000:5000 -v /opt/data/registry:/tmp/registry registry
查看私有库是否存在的方法是在浏览器通过本机ip:5000在浏览器访问,
如下图所示,搭建成功,docker私有库搭建(Centos6.5完整) - Wang - Wang的博客
这样我们就有了自己的私有库
3.测试docker私有库的push和pull
接下来,我们用另一台centos虚拟机试一试私有库有没有搭建好
同样,需要有docker,步骤同上,启动docker
我们可以先从官网上pull一个镜像来做测试,既然是测试,推荐一个小的镜像,busybox,2M左右
docker pull busybox
下来过后,我们将该镜像试着push到私有库。
push的第一步我们需要给该镜像打tag。
docker tag busybox 192.168.112.136:5000/busybox
接下来就pull
docker push 192.168.112.136:5000/busybox
push的时候如果出现下面的情况。
docker私有库搭建(Centos6.5完整) - Wang - Wang的博客
此处注意,因为Docker从1.3.X之后默认docker registry使用的是https,所以当用docker pull命令下载远程镜像时,如果远程docker registry是非https的时候就会报上面的错误。
那么我们需要改一下docker的配置文件,关于docker的配置文件,不同的系统也许地方不同,不够操作都是大同小异,centos下面是在 /etc/sysconfig/docker,ubuntu在/etc/default/docker
那么我们修改配置文件
vi /etc/sysconfig/docker
把其中的
other orgs =--insecure-registry=10.1.11.194:5000
此处10.1.11.194是私有库对应的ip
改完保存过后需要重启一下docker生效。
service docker restart
接下来在push一次
docker push 192.168.112.136:5000/busybox
push成功
docker私有库搭建(Centos6.5完整) - Wang - Wang的博客
浏览器输入 10.1.11.194:5000/v1/search 会出现下图,发现多了一个busybox的镜像,说明push成功
docker私有库搭建(Centos6.5完整) - Wang - Wang的博客
同理:pull也是一样的  docker pull 10.1.11.194:5000/busybox
 上面的是查询私有库所有的镜像,也可以指定查询的镜像,在浏览器
10.1.11.194:5000/v1/search?q=busybox
**以下为小提示
以上关于私有库的查看都是在浏览器上进行的,也可以直接用命令的形式进行查看
*查看私有库里面存在的所有镜像
docker search [my.registry.host]:[port]/library 
library为私有库名称,一般不改, 比如docker search 10.1.11.194:5000/library/busybox

*docker 通过pull的images存在于本地
通过cat /var/lib/docker/repositories-devicemapper 查看 ,不同的路径有差异

* Docker 配置文件位置Docker 的配置文件可以设置大部分的后台进程参数,在各个操作系统中的存放位置不一致
在 ubuntu 中的位置是:/etc/default/docker
在 centos 中的位置是:/etc/sysconfig/docker


1.    私有库相关命令

1.1  镜像有关命令

1.1.1        查看pull下来的镜像的同时将images字符串格式化

[root@centos6u5 ~]# cat /var/lib/docker/repositories-devicemapper | python -mjson.tool       

1.1.2        查询私有库里面的images

[root@centos6u5 ~]# docker search 10.1.11.194:5000/library

也可以使用下面命令查看

[root@centos6u5 /]# curl localhost:5000/v1/search | python -mjson.tool

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current

                                 Dload  Upload   Total   Spent    Left  Speed

117   234  117   234    0     0  19586      0 --:--:-- --:--:-- --:--:-- 33428

{

    "num_results": 4, 

    "query": "", 

    "results": [

        {

            "description": null, 

            "name": "library/mysql"

        }, 

        {

            "description": null, 

            "name": "tutum/mysql"

        }, 

        {

            "description": "", 

            "name": "library/ubuntu"

        }, 

        {

            "description": "", 

            "name": "library/registry"

        }

    ]

}

[root@centos6u5 /]#

1.1.3        私有库里面images的存放地址

[root@centos6u5 library]# ls /opt/data/registry/repositories/library

1.2  私有库镜像管理

1.2.1        首先查询私有库镜像

[root@centos6u5 library]# docker search 10.1.11.194:5000/library

NAME                  DESCRIPTION   STARS     OFFICIAL   AUTOMATED

library/busybox                     0                    

library/tutum4mysql                 0                    

library/ubuntu2                     0                    

library/registry                    0                    

library/mysql                       0                    

library/mss                         0                    

library/centos                      0                    

library/ubuntu                      0                    

[root@centos6u5 library]#         

 

1.2.2        对上面的ubuntu镜像操作(GET)

[root@centos6u5 library]# curl -X GET localhost:5000/v1/repositories/library/ubuntu/tags

{"latest": "2103b00b3fdf1d26a86aded36ae73c1c425def0f779a6e69073b3b77377df348"}

[root@centos6u5 library]#

1.2.3        删除ubuntu镜像(DELETE)  

[root@centos6u5 library]# curl -X DELETE localhost:5000/v1/repositories/library/Ubuntu/tags

True

[root@centos6u5 library]#

也可以后面加具体的tag,如下

[root@centos6u5 library]# curl -X DELETE localhost:5000/v1/repositories/library/busybox/tags/latest

true[root@centos6u5 library]#

1.2.4        再次获取该ubuntu镜像

 

[root@centos6u5 library]# curl -X GET localhost:5000/v1/repositories/library/ubuntu/tags

{"error": "Repository not found"}

[root@centos6u5 library]#

发现该镜像已经不存在了.

1.2.5        再次从私有库push该镜像

[root@centos6u5 library]# docker pull 10.1.11.194:5000/ubuntu

Pulling repository 10.1.11.194:5000/ubuntu

FATA[0002] Error: image ubuntu:latest not found 

此时发现给image已经不存在了

1.2.6        再次查询私有库镜像列表

[root@centos6u5 library]# docker search 10.1.11.194:5000/library

NAME                  DESCRIPTION   STARS     OFFICIAL   AUTOMATED

library/busybox                        0                    

library/tutum4mysql                    0                    

library/ubuntu2                  0                    

library/registry                          0                    

library/mysql                           0                    

library/mss                             0                    

library/centos                          0                    

[root@centos6u5 library]#

Ubuntu镜像已经被删除.

1.3         私有库大小管理

1.3.1        如果在创建私有库的时候没有映射到本地目录下面,那么默认私有库大小为10G,如果上传超过10G,就会push失败。所以,建议映射到本地目录,同时也可以持久化数据。

1.3.2        私有库映射到本地过后,私有库的大小就和卷的大小相关。

  评论这张
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值