Docker私有仓库2

http://www.cnblogs.com/womars/p/5906410.html

接着上篇,上面为上篇地址。

#通过docker tag将该镜像标志为要推送到私有仓库

[[email protected]2 ~]# sudo docker tag ubuntu 192.168.0.34:5000/ubuntu
Error response from daemon: no such id: ubuntu
[[email protected]-2 ~]# sudo docker tag docker.io/ubuntu 192.168.0.34:5000/ubuntu
Error response from daemon: no such id: docker.io/ubuntu
[[email protected]-2 ~]# sudo docker tag 3876b81b5a81 192.168.0.34:5000/ubuntu

#查看镜像

[[email protected]2 ~]# docker images
192.168.0.34:5000/ubuntu           latest              3876b81b5a81        7 months ago        187.9 MB
docker.io/ubuntu                   14.04.3             3876b81b5a81        7 months ago        187.9 MB

#提交ubuntu镜像到私有仓库

[[email protected]2 ~]# sudo docker push 192.168.0.34:5000/ubuntu
The push refers to a repository [192.168.0.34:5000/ubuntu]
5f70bf18a086: Pushed
0d81735d8272: Pushed
982549bd6b32: Pushed
8698b31c92d5: Pushed
latest: digest: sha256:a47804d268c600572aab1f564e38d1ef009bd7c7ce4bbd325be51973541e5431 size: 1129

#进入容器

[[email protected]2 data]# docker exec -it 6cb333619b90 /bin/sh
/ # ls
bin            entrypoint.sh  home           linuxrc        mnt            root           sbin           sys            usr
dev            etc            lib            media          proc           run            srv            tmp            var
/ # cd /tmp/registry/
/tmp/registry # ls
/tmp/registry # 

发现还是没有镜像

#镜像在容器的/var/lib/registry目录下

~ # cd /var/lib/registry/docker/registry/v2/repositories/
/var/lib/registry/docker/registry/v2/repositories # ls
busybox  nginx    ubuntu
/var/lib/registry/docker/registry/v2/repositories # ll
/bin/sh: ll: not found
/var/lib/registry/docker/registry/v2/repositories # ls -l
total 0
drwxr-xr-x    5 root     root            52 Sep  8 06:46 busybox
drwxr-xr-x    5 root     root            52 Sep  8 09:04 nginx
drwxr-xr-x    5 root     root            52 Sep  8 09:04 ubuntu
/var/lib/registry/docker/registry/v2/repositories #

#切换映射目录

[[email protected]2 registry]# docker run -d -p 5000:5000 -v /opt/data/registry:/var/lib/registry docker.io/registry
bc2304a84ec4cd7eed6b0dabd929141990d2e4f11253941a1fe28856c255aa06
[[email protected]-2 registry]# docker push 192.168.0.34:5000/busybox
The push refers to a repository [192.168.0.34:5000/busybox]
8ac8bfaff55a: Retrying in 1 seconds
Received unexpected HTTP status: 500 Internal Server Error

问题:push镜像报错。

#解决办法:

给这个容器扩展的特权--privileged=true

[[email protected]2 registry]# docker run -d -p 5000:5000 -v /opt/data/registry:/var/lib/registry --privileged=true docker.io/registry
23397ef79ec57f6a077dd50c8ff449c3a1dd6b21b8c13f6e210775ec0975412e

注:这儿只有加特权才可行,后面我用了registry:2镜像没有这个问题了,估计是最新版本镜像的问题吧。

#提交镜像到本地仓库中

[[email protected]2 registry]# docker images
REPOSITORY                           TAG                 IMAGE ID            CREATED             SIZE
192.168.0.34:5000/busybox            latest              2b8fd9751c4c        11 weeks ago        1.093 MB
[[email protected]-2 registry]# docker push 192.168.0.34:5000/busybox
The push refers to a repository [192.168.0.34:5000/busybox]
8ac8bfaff55a: Pushed
latest: digest: sha256:a59906e33509d14c036c8678d687bd4eec81ed7c4b8ce907b888c607f6a1e0e6 size: 505

发现可以push上去了。

[[email protected]2 registry]# ls /opt/data/registry/docker/registry/v2/repositories/
Busybox
[[email protected]-2 registry]# curl -XGET 192.168.0.34:5000/v2/_catalog
{"repositories":["busybox"]}

#进入容器看一下镜像实际存储位置

[[email protected]2 registry]# docker ps
CONTAINER ID        IMAGE                           COMMAND                  CREATED             STATUS              PORTS                                          NAMES
23397ef79ec5        docker.io/registry              "/entrypoint.sh /etc/"   15 minutes ago      Up 15 minutes       0.0.0.0:5000->5000/tcp                         berserk_hypatia
[[email protected]-2 registry]# docker exec -it 23397ef79ec5 /bin/sh
/ # ls
bin            entrypoint.sh  home           linuxrc        mnt            root           sbin           sys            usr
dev            etc            lib            media          proc           run            srv            tmp            var
/ # cd /var/lib/registry/docker/registry/v2/repositories/
/var/lib/registry/docker/registry/v2/repositories # ls
busybox

#查看镜像的存储目录树

[[email protected]2 registry]# tree /opt/data/registry/docker/registry/v2/repositories/
/opt/data/registry/docker/registry/v2/repositories/
└── busybox
    ├── _layers
    │   └── sha256
    │       ├── 2b8fd9751c4c0f5dd266fcae00707e67a2545ef34f9a29354585f93dac906749
    │       │   └── link
    │       └── 8ddc19f16526912237dd8af81971d5e4dd0587907234be2b83e249518d5b673f
    │           └── link
    ├── _manifests
    │   ├── revisions
    │   │   └── sha256
    │   │       └── a59906e33509d14c036c8678d687bd4eec81ed7c4b8ce907b888c607f6a1e0e6
    │   │           └── link
    │   └── tags
    │       └── latest
    │           ├── current
    │           │   └── link
    │           └── index
    │               └── sha256
    │                   └── a59906e33509d14c036c8678d687bd4eec81ed7c4b8ce907b888c607f6a1e0e6
    │                       └── link
    └── _uploads

16 directories, 5 files

测试放到下篇。

http://www.cnblogs.com/womars/p/5906444.html

时间: 2024-10-12 11:57:33

Docker私有仓库2的相关文章

搭建docker私有仓库

安装Docker Docker的安装请参考官网(http://www.docker.com),非常详细的介绍了各个操作系统的部署过程. 对于CentOS 7.x操作系统的在线安装Docker,请参考如下:https://docs.docker.com/engine/installation/linux/centos 搭建Docker私有仓库 Docker官方提供了一个公有的registry叫做Docker Hub.但是企业内部可能有些镜像还是不方便放到公网上去,所以docker也提供了regis

删除docker私有仓库中的镜像

docker私有仓库v2版本中的镜像,官方不建议删除,但是也提供了删除接口: DELETE /v2/<name>/manifests/<reference> Host: <registry host> Authorization: <scheme> <token> 删除的原理就是把索引删掉,但磁盘上的数据是删不掉的.这是由于各个镜像之间的不同层共用的关系,可能导致删除一个镜像后其余的镜像也无法使用了. 用python实现伪删除,代码如下: #-*

CentOS7搭建Docker私有仓库

学习Docker的过程中Docker的私有仓库一直没能成功,就是因为CentOS 6.x和CentOS 7默认引入了支持https认证,每次在push和pull的时候都会报错,今天是周末,利用一天的时间反复测试和网上案列的整合,总算是成功了,也借此 机会对学习Docker的朋友有所帮助. 个人的愚见:博友在练习的时候建议用CentOS 7.x系统,不建议用CentOS 6.x系统 一.准备 地址规划: Docker私有仓库地址:192.168.0.109 Docker客户端地址:192.168.

CentOS 7搭建Docker私有仓库

学习Docker的过程中Docker的私有仓库一直没能成功,就是因为CentOS 6.x和CentOS 7默认引入了支持https认证,每次在push和pull的时候都会报错,今天是周末,利用一天的时间反复测试和网上案列的整合,总算是成功了,也借此机会对学习Docker的朋友有所帮助. 个人的愚见:博友在练习的时候建议用CentOS 7.x系统,不建议用CentOS 6.x系统 一.准备 地址规划: Docker私有仓库地址:192.168.0.109 Docker客户端地址:192.168.0

(六)构建Docker私有仓库、Gitlab仓库和持续集成环境

环境说明 IP 功能 eth0:192.168.124.139 eth1:172.16.100.10 Docker私有仓库.Gitlab.持续集成 eth0:192.168.124.138 eth1:172.16.100.20 Docker服务器,运行容器 构建Docker私有仓库 我们通过Docker官方镜像registry来构建私有仓库. 首先要关闭防火墙.开启IP转发,在CentOS 7上IP转发是禁用的. 默认情况下会将仓库目录创建在容器的/var/lib/registry/下,所以我们

docker私有仓库(认证功能)

搭建docker私有仓库,带认证功能,记录如下: 1.创建对应的目录 mkdir -p /data/registry/ && cd /data/registry/ && mkdir auth certs 2.创建密码文件 cd /data/registry/ docker run --entrypoint htpasswd daocloud.io/registry:2.2 -Bbn ttxsgoto ttxsgoto > auth/htpasswd 3.生成签名证书

获取docker私有仓库中所有镜像的方法

搭建好docker私有仓库,但是不能查看里面的所有镜像,于是写一小脚本,目的是获取到该仓库中的所有镜像的名字. #-*- coding:utf-8 -*- #!/usr/bin/env python ''' Created on 2016.10.8 @author: an_time @desc: get images name from registry ''' import requests import json import traceback repo_ip = '172.16.2.23

教你分分钟搞定Docker私有仓库Registry

一.什么是Docker私有仓库Registry 官方的Docker hub是一个用于管理公共镜像的好地方,我们可以在上面找到我们想要的镜像,也可以把我们自己的镜像推送上去.但是,有时候我们的服务器无法访问互联网,或者你不希望将自己的镜像放到公网当中,那么你就需要Docker Registry,它可以用来存储和管理自己的镜像. 二.安装Docker及Registry 安装Docker见之前博文: http://www.cnblogs.com/Javame/p/5492543.html 安装Regi

局域网部署docker--从无到有创建自己的docker私有仓库

由于GFW的关系,国内用户在使用docker的时候,pull一个基本的镜像都拉下来,更不用说使用官方的index镜像了.差点放弃使用docker了,google了一圈,总算找到办法. 第一步:安装docker 参见官方指南或则各类中文指南 第二步:从文件系统创建一个image镜像 创建镜像有很多方法,官方的推荐是pull一个,无奈GFW,想下一个基本的ubuntu都下不下来 还有一个办法就是从一个文件系统import一个镜像,个人推荐可以使用opvz的模板来创建: openvz的模板下载地址如下

kubernetes下载docker私有仓库镜像

环境说明 docker仓库未认证地址:192.168.10.200:5000用户名:admin密码:admin邮箱:[email protected] 修改docker配置,访问docker私有仓库 1.docker源生版本 $cat /etc/sysconfig/docker # /etc/sysconfig/docker # Modify these options if you want to change the way the docker daemon runs OPTIONS='-