Docker搭建私有库
使用centos6.5搭建属于自己的docker私有库1.搭建启动docker首先,我们需要下载docker到centosyum install docker-io中间需要输出y回车进行确定。当下载完成后,启动dockerservice docker start如果提示启动不了,那么我们更新一下依赖的包,如果启动正常不需要执行下面的命令yum upgrade device-mapper-libs中间同样需要输入y确定更新完过后,我们再次启动dockerservice docker restart或service docker start如下图查看版本说明启动成功。 接下面进入正题,搭建docker私有库,不明思议,从官方下载的images由于各种原因,速度奇慢无比,所以,搭建私有库很有必要。2.搭建dokcer私有库推荐使用下面的命令启动,/tmp/registry registry为默认路径,我们需要映射该路径,即让镜像真正保存到本地磁盘上。docker run -d -p 5000:5000 -v /opt/data/registry:/tmp/registry registry查看私有库是否存在的方法是在浏览器通过本机ip:5000在浏览器访问,如下图所示,搭建成功,这样我们就有了自己的私有库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接下来就pulldocker push 192.168.112.136:5000/busyboxpush的时候如果出现下面的情况。此处注意,因为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/busyboxpush成功浏览器输入10.1.11.194:5000/v1/search会出现下图,发现多了一个busybox的镜像,说明push成功同理:pull也是一样的 docker pull 10.1.11.194:5000/busybox 上面的是查询私有库所有的镜像,也可以指定查询的镜像,在浏览器10.1.11.194:5000/v1/search?q=busybox**以下为小提示以上关于私有库的查看都是在浏览器上进行的,也可以直接用命令的形式进行查看*查看私有库里面存在的所有镜像docker search .host]:/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字符串格式化
# cat /var/lib/docker/repositories-devicemapper | python -mjson.tool
1.1.2 查询私有库里面的images
# docker search 10.1.11.194:5000/library
也可以使用下面命令查看
# curl localhost:5000/v1/search | python -mjson.tool
% Total % Received % XferdAverage Speed Time Time TimeCurrent
DloadUpload Total Spent LeftSpeed
117 234117 234 0 019586 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"
}
]
}
#
1.1.3 私有库里面images的存放地址
# ls /opt/data/registry/repositories/library
1.2私有库镜像管理
1.2.1 首先查询私有库镜像
# 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
#
1.2.2 对上面的ubuntu镜像操作(GET)
# curl -X GET localhost:5000/v1/repositories/library/ubuntu/tags
{"latest": "2103b00b3fdf1d26a86aded36ae73c1c425def0f779a6e69073b3b77377df348"}
#
1.2.3 删除ubuntu镜像(DELETE)
# curl -X DELETE localhost:5000/v1/repositories/library/Ubuntu/tags
True
#
也可以后面加具体的tag,如下
# curl -X DELETE localhost:5000/v1/repositories/library/busybox/tags/latest
true#
1.2.4 再次获取该ubuntu镜像
# curl -X GET localhost:5000/v1/repositories/library/ubuntu/tags
{"error": "Repository not found"}
#
发现该镜像已经不存在了.
1.2.5 再次从私有库push该镜像
# docker pull 10.1.11.194:5000/ubuntu
Pulling repository 10.1.11.194:5000/ubuntu
FATA Error: image ubuntu:latest not found
此时发现给image已经不存在了
1.2.6 再次查询私有库镜像列表
# 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
#
Ubuntu镜像已经被删除.
1.3 私有库大小管理
1.3.1 如果在创建私有库的时候没有映射到本地目录下面,那么默认私有库大小为10G,如果上传超过10G,就会push失败。所以,建议映射到本地目录,同时也可以持久化数据。
1.3.2 私有库映射到本地过后,私有库的大小就和卷的大小相关。
评论这张 版权声明:本文为博主原创文章,未经博主允许不得转载。
页:
[1]