Docker 私有仓库

私有仓库

安装私有仓库

默认情况下,仓库会被创建在容器的 /tmp/registry 下。可以通过 -v 参数来将镜像文件存放在本地的指定路径。 例如下面的例子将上传的镜像放到 /opt/data/registry 目录。

sudo docker run -d -p 5000:5000 -v /opt/data/registry:/tmp/registry registry

上传镜像

创建好私有仓库之后,就可以使用 docker tag 来标记一个镜像,然后推送它到仓库,别的机器上就可以下载下来了。例如私有仓库地址为 192.168.0.1:5000。

$ sudo docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
sate/centos         6.7                 976079dcc3f5        3 days ago          190.6 MB
centos              6.7                 130db9a2a215        2 weeks ago         190.6 MB

使用docker tag 将 976079dcc3f5 这个镜像标记为 192.168.0.1:5000/sate-centos(格式为 docker tag IMAGE[:TAG] [REGISTRYHOST/][USERNAME/]NAME[:TAG])。

$ docker tag 976079dcc3f5 192.168.0.1:5000/sate-centos:test

$ docker images
REPOSITORY                        TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
192.168.0.1:5000/sate-centos   test                976079dcc3f5        3 days ago          190.6 MB
sate/centos                       6.7                 976079dcc3f5        3 days ago          190.6 MB
centos                            6.7                 130db9a2a215        2 weeks ago         190.6 MB

使用 docker push 上传标记的镜像。

$ docker push 192.168.0.1:5000/sate-centos
The push refers to a repository [192.168.0.1:5000/sate-centos] (len: 1)
unable to ping registry endpoint https://192.168.0.1:5000/v0/
v2 ping attempt failed with error: Get https://192.168.0.1:5000/v2/: EOF
 v1 ping attempt failed with error: Get https://192.168.0.1:5000/v1/_ping: EOF

注:报错是因为 docker 默认使用https的方式,解决办法如下:

办法: 修改配置文件,使用 http 方式

centos系统:

修改docker的配置文件/etc/sysconfig/docker

# 加入:
INSECURE_REGISTRY='--insecure-registry 192.168.0.1:5000'
# 重启服务
systemctl restart docker

ubuntu系统:

修改docker的配置文件/etc/default/docker

# 加入:
DOCKER_OPTS='--insecure-registry 192.168.0.1:5000'
# 重启服务
service docker start

再次尝试 push 镜像,如下:

$ sudo docker push 192.168.0.1:5000/test
The push refers to a repository [192.168.0.1:5000/test] (len: 1)
Sending image list
Pushing repository 192.168.0.1: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.0.1:5000/v1/repositories/test/tags/latest}

push成功后,查看本地目录/opt/data/registry:

root@sate-z:/opt/data/registry# ls
images  repositories

测试

通过私仓的链接地址查看我们刚上传的镜像:

$ curl http://192.168.0.1:5000/v1/search
{"num_results": 1, "query": "", "results": [{"description": "", "name": "library/sate-centos"}]}

下载镜像

pull命令来拉取我们的镜像:

$ docker pull 192.168.0.1:5000/sate-centos:test
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 关于registry 官方的Docker hub是一个用于管理公共镜像的好地方,我们可以在上面找到我们想要的镜像,...
    03b222cf1c46阅读 5,384评论 2 2
  • 镜像构建完成后,可以很容易的在当前宿主上运行,但是,如果需要在其它服务器上使用这个镜像,我们就需要一个集中的存储、...
    米刀灵阅读 3,558评论 0 0
  • Doker 在业界的应用越来越广泛,怎么用户管理好自己的镜像、容器等就是一个迫在眉睫的任务。 由于业务需要,我们需...
    zwsuo阅读 16,192评论 9 6
  • 一、Harbor简介 Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器,可以用来构建...
    oldthief阅读 25,411评论 11 15
  • 我从小就是一个贪玩调皮的孩子,所以从小到现在也出过很多记忆深刻劫难,但记忆深刻的也就那么三次吧。 第一次,那...
    续缘阅读 2,823评论 0 1

友情链接更多精彩内容