docker学习笔记(四)——仓库

仓库的概念前面的文章说过,本篇文章主要介绍docker hub、创建使用仓库、仓库加速及仓库管理。

1 Docker Hub

仓库是集中存放镜像的地方。
目前Docker官方仓库维护了一个公共仓库https://hub.docker.com,其中已经包括15000多个的镜像。
大部分需求都可以通过在Docker Hub中直接下来镜像来实现。

登录
可以通过执行docker login命令来输入用户名、密码和邮箱来完成注册登录。
这里写图片描述

基本操作
用户无需登录可以通过 docker search命令来查找官方仓库中的镜像,并利用docker pull 下载到本地,可以通过docker push 命令将本地镜像推送到docker hub。

2 创建和使用私有仓库

docker hub属于公有仓库,我们也可以自己创建本地的私有仓库,这样方便我们局域网使用,也更安全点。

我们可以直接使用docker官方提供的registry镜像创建一套本地私有仓库
镜像地址:https://hub.docker.com/_/registry/
命令:

docker run -e SEARCH_BACKEND=sqlalchemy -e SQLALCHEMY_INDEX_DATABASE=sqlite:tmp/docker-registry.db -d --name registry -p 5000:5000 registry

其中
-e为设置环境变量的意思,因为容器内部的应用会依赖一些环境变量,所以我们通过-e来传递这些环境变量。
-d前面文章讲过,以守护进程的方式启动。
-p为暴露端口的意思,以上面命令为例,即把容器的5000端口和宿主机的5000端口绑定。

至于上面命令-e后面的环境变量的意思可以参考下面的说明:
https://github.com/docker/docker-registry#search-engine-options
https://hub.docker.com/_/registry/

执行上面的命令就会自动下载并启动一个registry容器,创建本地的私有仓库服务。
默认仓库创建在/tmp/registry目录下。
下面我们执行该命令,可以看到已经下载完成并且处于运行中。
这里写图片描述

这个时候我们就可以往我们的私有仓库中传送及下载镜像,我们先hello-world镜像打个tag:

docker tag f2a91732366c 192.168.2.132:5000/linsuren/hello-world(192.168.2.132为虚拟机的IP)

这里写图片描述
然后push上去:

docker push 192.168.2.132:5000/linsuren/hello-world

发现报错了
这里写图片描述
这个问题可能是由于客户端采用https,docker registry未采用https服务所致
解决办法是:
在/etc/docker下,创建daemon.json文件,写入:
{ "insecure-registries":["192.168.2.132:5000"]}

重启docker:

systemctl restart docker.service

重新启动registry:

docker start registry

再push镜像:
这里写图片描述
可以看到,已经成功了。

3 仓库加速服务

我们会发现从docker hub上拉取镜像非常慢,这是因为它的镜像点在国外,我们可以通过配置加速服务来提高拉取镜像的速度。
打开https://dashboard.daocloud.io/,注册一个账号,然后点击右上角的加速器
这里写图片描述
复制这条命令,然后粘贴执行
这里写图片描述
这里写图片描述
重启docker,然后拉取一个镜像试一下,发现速度明显变快了
这里写图片描述

4 仓库管理

上文讲到创建私有仓库,这儿我们给私有仓库配置以下UI的界面,方面我们直观地看到镜像以及查询删除等操作。
这儿我们使用Registry Web UI
镜像地址:https://hub.docker.com/r/atcol/docker-registry-ui/
启动命令:

docker run -d --name registry_ui -p 8080:8080 -e REG1=http://<registry_ip>:5000/v1/ atcol/docker-registry-ui

registry_ip更改为你机器的ip
访问地址:

http://<host_ip>:8080

这里写图片描述
进入页面,可以看到仓库和镜像,在这儿我们可以方便的进行管理。
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值