DockerHub配置
//参考链接 https://yeasy.gitbooks.io/docker_practice/content/repository/local_repo.html
$ sudo apt-get install -y build-essential python-dev libevent-dev python-pip liblzma-dev
$ sudo -E pip install docker-registry//-E表示在代理下工作
$ sudo apt-get install swig
//安装完之后,依然报错error:command 'swig' failed with exit status 1
// Rolling back uninstall of M2Crypto
//解决问题的方法:https://my.oschina.net/54720/blog/863329
//具体做法是 vim /usr/include/opensslconf.h 编辑36行
//注释error行,载入opensslconf.h文件,如下图所示。
// #include "opensslconf.h"
ubuntu
编辑/etc/hosts
10.21.4.24 lucus.com
编辑ubuntu /etc/default/docker或者Centos /etc/sysconfig/docker
DOCKER_OPTS="--insecure-registry lucus.com:5000"
//然后修改配置文件,主要修改 dev 模板段的 storage_path 到本地的存储仓库的路径。
$ cp config/config_sample.yml config/config.yml
//启动服务
$ 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的版本信息说明运行成功。
验证本地仓库,上传、下载、搜索镜像
创建好私有仓库之后,就可以使用 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
使用 docker push 上传标记的镜像。
$ sudo docker push 192.168.7.26:5000/test
用 curl 查看仓库中的镜像。
$ curl http://192.168.7.26:5000/v1/search
这里可以看到 {"description": "", "name": "library/test"},表明镜像已经被成功上传了。
现在可以到另外一台机器去下载这个镜像。
$ sudo docker pull 192.168.7.26:5000/test
删除镜像
curl -X DELETE 10.21.4.39:5000/v1/repositories/镜像名称/