目前的Registry是用Go语言编写的,以单个可执行文件形式允许;也提供Docker镜像,直接运行即可。

启动一个仓库实例

docker run -d -p 5000:5000 --name registry registry:2

测试自建仓库

从官方获取镜像,并将镜像存入仓库实例

docker pull ubuntu
docker tag ubuntu localhost:5000/myfirstimage
docker push localhost:5000/myfirstimage
docker pull localhost:5000/myfirstimage

使用自建仓库作为镜像

修改docker配置,从自建仓库获取image,也可以从其它第三方镜像获取,以下为常用第三方镜像

http://hub-mirror.c.163.com

http://aad0405c.m.daocloud.io

https://pr4tgi96.mirror.aliyuncs.com

修改docker启动配置文件

echo "DOCKER_OPTS=\"--registry-mirror=http://docker-registry.xglabc.com\"" | sudo tee -a /etc/default/docker

重新启动docker使生效

service docker restart

获取镜像,如果自建仓库中没查到image将从官方获取。

docker pull debian

镜像官网仓库

获取image

docker pull debian

设置标签

docker tag debian docker-registry.xglabc.com/library/debian

将image存入自建仓库

docker push docker-registry.xglabc.com/library/debian

删除标签

docker rmi docker-registry.xglabc.com/library/debian

测试获取

docker pull debian

编写镜像脚本

写到一起简化一下,编写一个脚本mirror

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
#!/bin/bash
img_name=$1

if [ ! -n "$img_name" ] ;then
    echo "Please input the image name."
else
    docker pull $img_name && \
    docker tag $img_name docker-registry.xglabc.com/$img_name && \
    docker push docker-registry.xglabc.com/$img_name && \
    docker rmi docker-registry.xglabc.com/$img_name
fi

赋予可执行权限

chmod +x mirror

镜像仓库

mirror consul

查看私有仓库中的内容

https://docker-registry.xglabc.com/v2/_catalog
https://docker-registry.xglabc.com/v2/library/golang/tags/list

[ 编辑 | 历史 ]
最近由“jilili”在“2017-08-09 04:55:20”修改