容器化技术——Docker专题六 | 搭建私有仓库

本文章是在网易云课堂的课程学习中编写,部分图片从网易云课堂ppt引用

【公共仓库Docker Hub】

首先我们来了解一下公共仓库Docker Hub。Docker官方维护了一个公共仓库Docker Hub,大部分镜像都可以在Docker Hub中直接下载。

1、注册登录

https://hub.docker.com/ 免费注册一个 Docker 账号
注册好账号后,在某个宿主机上执行 docker login命令,输入用户名及密码,可以在命令行界面登录 Docker Hub

image.png

通过 docker logout可以退出登录

2、拉取镜像

可以通过docker search命令来查找官方仓库中的镜像,并利用 docker pull命令来将它下载到本地。
比如:

docker search tomcat
docker pull tomcat

3、推送镜像

我们也可以在登录后通过 docker push 命令来将自己的镜像推送到 Docker Hub
以下命令中的 dockerId为镜像id,username 替换为自己的 Docker 账号用户名,image:version为镜像名及版本号

docker tag dockerId username/image:version
docker image ls
docker push username/image:version
docker search username

来操作试一下:

image.png
image.png
image.png

4、自动创建

对于需要经常升级的镜像内程序来说,自动创建功能十分方便。
软件发布新版本,一般需要手动更新镜像,而自动创建功能,允许用户通过 Docker Hub 指定跟踪一个目标网站(目前支持 GitHub 或 BitBucket)上的项目。一旦项目发生新的提交或者创建新的标签(tag),Docker Hub 会自动构建镜像并推送到 Docker Hub 中。

要配置自动创建,包括如下的步骤:

  • 创建并登录 Docker Hub,以及目标网站
  • 在目标网站中连接帐户到 Docker Hub
  • 在 Docker Hub 中 配置一个自动创建
  • 选取一个目标网站中的项目(需要含 Dockerfile)和分支
  • 指定 Dockerfile 的位置,并提交创建
  • 之后,可以在 Docker Hub 的 自动创建页面 中跟踪每次创建的状态

【Docker私有仓库】

有时候使用 Docker Hub 公共仓库可能不方便,那么我们可以创建一个本地仓库供私人使用。

1、安装运行 docker-registry

docker-registry 是官方提供的工具,可以用于构建私有的镜像仓库。本次构建是基于 docker-registry v2.x 版本。

docker run --name registry -d -p 5000:5000 --restart=always -v /opt/data/registry:/var/lib/registry registry

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

image.png

2、在私有仓库上传、搜索、下载镜像

创建好私有仓库之后,就可以使用 docker tag来标记一个镜像,然后推送它到仓库。格式为:

docker tag IMAGE[:TAG] [REGISTRY_HOST[:REGISTRY_PORT]/]REPOSITORY[:TAG]。

例如私有仓库地址为 127.0.0.1:5000,先在本机查看已有的镜像:

docker image ls

image.png

2.1 使用 docker tag 将 ubuntu:16.04 这个镜像标记为 127.0.0.1:5000/ubuntu:16.04

docker tag ubuntu:16.04 127.0.0.1:5000/ubuntu:16.04
docker image ls

image.png

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

docker push 127.0.0.1:5000/ubuntu:16.04

image.png

2.3 用 curl 查看仓库中的镜像

curl 127.0.0.1:5000/v2/_catalog

image.png

这里可以看到 {"repositories":["ubuntu"]},表明镜像已经被成功上传了。

2.4 下面我们来试试从私有仓库下载这个镜像,先删除已有镜像,再拉取。

docker image rm 127.0.0.1:5000/ubuntu:16.04
docker pull 127.0.0.1:5000/ubuntu:16.04
docker images

image.png

3、注意事项

如果不想使用 127.0.0.1:5000 作为仓库地址,比如想让本网段的其他主机也能把镜像推送到私有仓库,就得把例如 192.168.199.100:5000 这样的内网地址作为私有仓库地址,这时会发现无法成功推送镜像。

这是因为 Docker 默认不允许非 HTTPS 方式推送镜像,我们可以通过 Docker 的配置选项来取消这个限制。

3.1 Ubuntu 14.04, Debian 7 Wheezy
对于使用 upstart 的系统,编辑 /etc/default/docker 文件,在其中的 DOCKER_OPTS 中增加如下内容:

DOCKER_OPTS="--registry-mirror=https://registry.docker-cn.com --insecure-registries=192.168.199.100:5000"

重新启动服务

sudo service docker restart

3.2 Ubuntu 16.04+, Debian 8+, centos 7
对于使用 systemd 的系统,在 /etc/docker/daemon.json 中写入如下内容(如果文件不存在需新建该文件)

{
"registry-mirrors": [
"https://registry.docker-cn.com"
],
"insecure-registries": [
"192.168.199.100:5000"
]

insecure-registries参数是我们新增的配置
注意:该文件必须符合 json 规范,否则 Docker 将不能启动。

3.3 Windows、Mac
对于 Docker for Windows 、Docker for Mac ,在设置中编辑 daemon.json 增加和上边一样的字符串

{
"registry-mirrors": [
"https://registry.docker-cn.com"
],
"insecure-registries": [
"192.168.199.100:5000"
]

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

推荐阅读更多精彩内容