Docker仓库的简单介绍
用来保存镜像的位置,Docker提供一个注册服务器(Register)来保存多个仓库,每个仓库又可以包含多个具有不同tag的镜像,自己创建的镜像,不仅可以在本地使用,并且可以上传到Docker仓库
Docker运行中使用的默认仓库是Docker Hub公共仓库,里面存储了各类的镜像
用户通过编写Dockerfile,bulid创建以后生成镜像–>镜像可以用来创建容器–>容器提交给镜像,通过Push将此镜像上传到仓库中
Registry仓库工作原理
1.当用户要获取并下载镜像时
工作流程为:
用户发送请求到index来下载镜像。
index 响应返回三个相关部分信息:
该镜像位于的registry
该镜像包括所有层的校验
以授权目的Token
用户通过响应中返回的Token和registry沟通,registry全权负责镜像,它存
储基本的镜像和继承的层。
registry现在要与index证实该token是被授权的。
index会发送“true” 或者 “false”给registry,由此允许用户下载所需要的镜像。
2.用户要推送镜像到registry中
工作流程为:
用户发送带证书请求到index要求分配库名。
在成功认证,命名空间可用以及库名被分配之后。index响应返回临时的token。
镜像连带token,一起被推送到registry中。
registry与index证实token,然后在index验证之后开始读取推送流。
该index然后更新由Docker生成的镜像校验。
3.用户从index或者registry中删除镜像
工作流程为:
index接收来自Docker一个删除库的信号。
如果index验证库成功,它将删除该库,并返回一个临时token。
registry现在接收到带有该token的删除信号。
registry与index核实该token,然后删除库以及所有相关信息。
Docker现在通知有关删除的index,然后index移除库的所有记录。
Docker镜像加速器的配置
在doccker hub上下载镜像的速度太慢,则需要配置镜像加速器,相当于一个反向代理。以阿里云为例
1.注册阿里云帐号
进入阿里云的镜像中心–>镜像加速器
查看到加速器地址为:
https://z5utl514.mirror.aliyuncs.com
2.配置docker daemon文件
[root@server1 ~]# vim /etc/docker/daemon.json
[root@server1 ~]# cd /etc/docker/
[root@server1 docker]# ls
key.json
[root@server1 docker]# vim daemon.json
[root@server1 docker]# cat daemon.json
{
"registry-mirrors":["https://z5utl514.mirror.aliyuncs.com"]
}
[root@server1 docker]# systemctl daemon-reload
[root@server1 docker]# systemctl restart docker
3.测试加速器是否配置成功
(1)查找镜像查看速度是否变快
[root@server1 docker]# docker search nginx
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
nginx Official build of Nginx. 11671 [OK] ##官方nginx,其余的均为用户自己创建的nginx镜像
jwilder/nginx-proxy Automated Nginx reverse proxy for docker con… 1627 [OK]
richarvey/nginx-php-fpm Container running Nginx + PHP-FPM capable of… 726 [OK]
bitnami/nginx Bitnami nginx Docker Image 69 [OK]
linuxserver/nginx An Nginx container, brought to you by LinuxS… 66
(2)拉去镜像nginx到本地
[root@server1 ~]# docker images ##保证本地没有nginx镜像,容器层会进行共享,当本地有需要的镜像时,则其不会再去下载镜像
REPOSITORY TAG IMAGE ID CREATED SIZE
<none> <none> 7b24b4e0abc4 19 hours ago 308MB
busybox latest 59788edf1f3e 9 months ago 1.15MB
game2048 latest 19299002fdbe 2 years ago 55.5MB
ubuntu latest 07c86167cdc4 3 years ago 188MB
rhel7 latest 0a3eb3fde7fd 5 years ago 140MB
gcr.io/distroless/base latest 9a255d5fe262 49 years ago 16.8MB
[root@server1 docker]# docker pull nginx ##拉取镜像,默认拉取最新版本
Using default tag: latest
latest: Pulling from library/nginx
fc7181108d40: Pull complete
d2e987ca2267: Pull complete
0b760b431b11: Pull complete
Digest: sha256:48cbeee0cb0a3b5e885e36222f969e0a2f41819a68e07aeb6631ca7cb356fed1
Status: Downloaded newer image for nginx:latest
[root@server1 docker]# docker images nginx ##查看此镜像的大小
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest f68d6e55e065 10 days ago 109MB