2018-09-01 <Docker容器> 第三章 搭建私有的docker registry

搭建和运行Docker Register两类方式:

1. 对于 Redhat / centos/ fedora :安装docker-distribution软件(Package docker-registry is obsoleted by docker-distribution)

2. 对于ubuntu/Atomic: 运行registry的容器景象


docker-registry安装软件的方式 (Centos)

一,软件的配置:

1. registry软件端口:5000

如果registry(镜像存储端)和docker(景象使用端)不在一个server上,需要开端口

2.registry景象存储位置:

/var/lib/registry/

3. 安装和启动registry(同一个server)

step1. install registry

[root@k8s-ubuntu-mini ~]# yum install docker-registry

Loaded plugins: fastestmirror

Loading mirror speeds from cached hostfile

* base: mirror.hosting90.cz

* extras: ftp.sh.cvut.cz

* updates: ftp.sh.cvut.cz

base                                                                                                                                                      | 3.6 kB  00:00:00

extras                                                                                                                                                    | 3.4 kB  00:00:00

updates                                                                                                                                                  | 3.4 kB  00:00:00

(1/2): extras/7/x86_64/primary_db                                                                                                                        | 187 kB  00:00:00

(2/2): updates/7/x86_64/primary_db                                                                                                                        | 5.2 MB  00:00:02

Package docker-registry is obsoleted by docker-distribution, trying to install docker-distribution-2.6.2-2.git48294d9.el7.x86_64 instead

...

[root@k8s-ubuntu-mini ~]# rpm -ql docker-distribution | more

/etc/docker-distribution/registry/config.yml

/usr/bin/registry

/usr/lib/systemd/system/docker-distribution.service

/usr/share/doc/docker-distribution-2.6.2

/usr/share/doc/docker-distribution-2.6.2/AUTHORS

/usr/share/doc/docker-distribution-2.6.2/CONTRIBUTING.md

/usr/share/doc/docker-distribution-2.6.2/LICENSE

/usr/share/doc/docker-distribution-2.6.2/MAINTAINERS

/usr/share/doc/docker-distribution-2.6.2/README.md

/var/lib/registry

[root@k8s-ubuntu-mini ~]#

step2. start registry

[root@k8s-ubuntu-mini ~]# systemctl start docker-distribution

[root@k8s-ubuntu-mini ~]# systemctl enable docker-distribution

Created symlink from /etc/systemd/system/multi-user.target.wants/docker-distribution.service to /usr/lib/systemd/system/docker-distribution.service.

[root@k8s-ubuntu-mini ~]# ps -ef | grep -i distribution

root    10532    1  0 09:21 ?        00:00:01 /usr/bin/registry serve /etc/docker-distribution/registry/config.yml

这就得到了一个叫localhost:5000的registry

可以通过修改/etc/docker-distribution/registry/config.yml,来改变registry服务的行为

step3. test registry

-- 先下载一个测试镜像(从默认的Ducker Hub Registry :docker.io中, 搜索名字里有hello-world 的景象, 然后用全路径下载。 只是search和pull,无须docker login)

[root@k8s-ubuntu-mini ~]# docker search hello-world

INDEX      NAME                                                DESCRIPTION                                    STARS    OFFICIAL  AUTOMATED

docker.io  docker.io/hello-world                                Hello World! (an example of minimal Docker...  642      [OK]

docker.io  docker.io/kitematic/hello-world-nginx                A light-weight nginx container that demons...  108

...

[root@k8s-ubuntu-mini ~]# docker pull docker.io/hello-world

Using default tag: latest

Trying to pull repository docker.io/library/hello-world ...

latest: Pulling from docker.io/library/hello-world

9db2ca6ccae0: Pull complete

Digest: sha256:4b8ff392a12ed9ea17784bd3c9a8b1fa3299cac44aca35a85c90c5e3c7afacdc

Status: Downloaded newer image for docker.io/hello-world:latest

[root@k8s-ubuntu-mini ~]#

[root@k8s-ubuntu-mini ~]# docker image list

REPOSITORY              TAG                IMAGE ID            CREATED            SIZE

docker.io/hello-world  latest              2cb0d9787c4d        7 weeks ago        1.85 kB

image存放在mysql里,配置文件在/etc/lib/docker/image/下


-- 把下载image tag一个标签,然后push到刚搭建的registry里 (这是在registry server上,发生的docker端对registry端的操作

[root@k8s-ubuntu-mini ~]# docker tag hello-world:latest localhost:5000/hello-me:latest

[root@k8s-ubuntu-mini ~]# docker push localhost:5000/hello-me:latest

The push refers to a repository [localhost:5000/hello-me]

ee83fc5847cb: Pushed

latest: digest: sha256:aca41a608e5eb015f1ec6755f490f3be26b48010b178e78c00eac21ffbe246f1 size: 524

[root@k8s-ubuntu-mini ~]#

-- 清理Docker Hub Registry下载的原镜像

[root@k8s-ubuntu-mini ~]# docker rmi hello-world

Untagged: hello-world:latest

Untagged: docker.io/hello-world@sha256:4b8ff392a12ed9ea17784bd3c9a8b1fa3299cac44aca35a85c90c5e3c7afacdc

Untagged: localhost:5000/hello-me@sha256:aca41a608e5eb015f1ec6755f490f3be26b48010b178e78c00eac21ffbe246f1


4. docker side, 使用新建的registry

* 除了本地registry,其余可用的、blocked的registry在编辑/etc/containers/registries.conf里定义。

拉取镜像

[root@k8s-ubuntu-mini ~]# docker pull localhost:5000/hello-me:latest

Trying to pull repository localhost:5000/hello-me ...

latest: Pulling from localhost:5000/hello-me

Digest: sha256:aca41a608e5eb015f1ec6755f490f3be26b48010b178e78c00eac21ffbe246f1

Status: Image is up to date for localhost:5000/hello-me:latest

[root@k8s-ubuntu-mini ~]#

[root@k8s-ubuntu-mini ~]# docker images

REPOSITORY                TAG                IMAGE ID            CREATED            SIZE

localhost:5000/hello-me  latest              2cb0d9787c4d        7 weeks ago        1.85 kB

[root@k8s-ubuntu-mini ~]#

到这能看到,这个image的下载来源变成了刚刚建的registry

二、Docker镜像的命名空间和registry使用的选择

命名空间,世界上每个image有唯一的名字。

在Docker端,关于registry使用的选择:

Docker Project本身,不支持修改默认registry (Docker Hub Registry),也不支持Block任何registry。但是在各种Linux发型版或Atomic版本中,后续加入了这些特性支持:

1. Redhat: /etc/sysconfig/docker --

(1)添加registry,增加下面一行:

ADD_REGISTRY='--add-registry <registry_name>'

  ps: 当添加一个使用https通讯的registry,又没有registry提供的证书,那么还要多加这一行

INSECURE_REGISTRY=‘--insecure-registry’

(2)修改默认registry,只需要上面这一行放在docker.io前面

(3)停用某个registry,增加下面一行:

BLOCK_REGSTRY='--block-registry <registry_name>'

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,335评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,895评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,766评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,918评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,042评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,169评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,219评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,976评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,393评论 1 304
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,711评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,876评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,562评论 4 336
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,193评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,903评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,142评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,699评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,764评论 2 351

推荐阅读更多精彩内容