docker以distribution和registry管理个人镜像仓库

目录

一.distribution

1.扩展源下载docker-distribution并启动

2.打标签并认证安全仓库

3.推送到私人仓库

4.拉取镜像

二.registry

1.拉取registry的镜像

2.运行容器并打标签

3.认证安全仓库

4.推送到私人仓库

5.拉取镜像


一.distribution

1.扩展源下载docker-distribution并启动

[root@localhost ~]# yum info docker-distribution

[root@localhost ~]# yum install -y docker-distribution.x86_64

[root@localhost ~]# systemctl start docker-distribution

[root@localhost ~]# cd /etc/docker-distribution/registry/

[root@localhost registry]# cat config.yml 
version: 0.1
log:
  fields:
    service: registry
storage:
    cache:
        layerinfo: inmemory
    filesystem:
        rootdirectory: /var/lib/registry  #默认的镜像存放大致路径
http:
    addr: :5000   #端口

2.打标签并认证安全仓库

[root@localhost ~]# docker images
REPOSITORY                                           TAG         IMAGE ID       CREATED         SIZE
mysql                                                5.6         dd3b2a5dcb48   20 months ago   303MB
registry.cn-hangzhou.aliyuncs.com/su03/mycontainer   mysql_5.6   dd3b2a5dcb48   20 months ago   303MB
centos                                               latest      5d0da3dc9764   23 months ago   231MB
registry                                             2.6.2       10b45af23ff3   3 years ago     28.5MB
owncloud                                             latest      327bd201c5fb   4 years ago     618MB

[root@localhost ~]# docker tag centos:latest 192.168.2.190:5000/centos:latest

[root@localhost ~]# vim /etc/docker/daemon.json
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"],
"insecure-registries": ["192.168.2.190:5000"]
}

[root@localhost ~]# systemctl restart docker

3.推送到私人仓库

[root@localhost ~]# docker push 192.168.2.190:5000/centos:latest 
The push refers to repository [192.168.2.190:5000/centos]
74ddd0ec08fa: Pushed 
latest: digest: sha256:a1801b843b1bfaf77c501e7a6d3f709401a1e0c83863037fa3aab063a7fdb9dc size: 529

[root@localhost ~]# ll /var/lib/registry/docker/registry/v2/repositories
total 0
drwxr-xr-x 5 root root 55 Aug 25 17:30 centos

4.拉取镜像

[root@localhost ~]# docker pull 192.168.2.190:5000/centos:latest 
latest: Pulling from centos
Digest: sha256:a1801b843b1bfaf77c501e7a6d3f709401a1e0c83863037fa3aab063a7fdb9dc
Status: Image is up to date for 192.168.2.190:5000/centos:latest
192.168.2.190:5000/centos:latest

[root@localhost ~]# docker images
REPOSITORY                                           TAG         IMAGE ID       CREATED         SIZE
mysql                                                5.6         dd3b2a5dcb48   20 months ago   303MB
registry.cn-hangzhou.aliyuncs.com/su03/mycontainer   mysql_5.6   dd3b2a5dcb48   20 months ago   303MB
192.168.2.190:5000/centos                            latest      5d0da3dc9764   23 months ago   231MB
centos                                               latest      5d0da3dc9764   23 months ago   231MB
registry                                             2.6.2       10b45af23ff3   3 years ago     28.5MB
owncloud                                             latest      327bd201c5fb   4 years ago     618MB

二.registry

1.拉取registry的镜像

[root@localhost ~]# systemctl stop docker-distribution.service 

[root@localhost ~]# docker pull registry:2.6.2

2.运行容器并打标签

-v指定把镜像存储到宿主机的/registry目录下

[root@localhost ~]# docker run -itd --name myregistry -p 5000:5000 -v /registry:/var/lib/registry registry:2.6.2 
a2ddb1f22601398d13dcfcc2f6e495883d5b9cf52fce690eefbe8d0cfc787fd0

[root@localhost ~]# docker tag nginx:latest 192.168.2.190:5000/nginx:latest

3.认证安全仓库

[root@localhost ~]# vim /etc/docker/daemon.json 
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"],
"insecure-registries": ["192.168.2.190:5000"]
}

[root@localhost ~]# systemctl restart docker

4.推送到私人仓库

[root@localhost ~]# docker push 192.168.2.190:5000/nginx:latest 
The push refers to repository [192.168.2.190:5000/nginx]
563c64030925: Pushed 
6fb960878295: Pushed 
e161c3f476b5: Pushed 
8a7e12012e6f: Pushed 
d0a62f56ef41: Pushed 
4713cb24eeff: Pushed 
511780f88f80: Pushed 
latest: digest: sha256:48a84a0728cab8ac558f48796f901f6d31d287101bc8b317683678125e0d2d35 size: 1778

[root@localhost ~]# ll /registry/docker/registry/v2/repositories/
total 0
drwxr-xr-x 5 root root 55 Aug 25 18:09 nginx

5.拉取镜像

[root@localhost ~]# docker pull 192.168.2.190:5000/nginx:latest 
latest: Pulling from nginx
Digest: sha256:48a84a0728cab8ac558f48796f901f6d31d287101bc8b317683678125e0d2d35
Status: Image is up to date for 192.168.2.190:5000/nginx:latest
192.168.2.190:5000/nginx:latest

[root@localhost ~]# docker images
REPOSITORY                                           TAG         IMAGE ID       CREATED         SIZE
192.168.2.190:5000/nginx                             latest      eea7b3dcba7e   9 days ago      187MB
nginx                                                latest      eea7b3dcba7e   9 days ago      187MB
mysql                                                5.6         dd3b2a5dcb48   20 months ago   303MB
registry.cn-hangzhou.aliyuncs.com/su03/mycontainer   mysql_5.6   dd3b2a5dcb48   20 months ago   303MB
192.168.2.190:5000/centos                            latest      5d0da3dc9764   23 months ago   231MB
centos                                               latest      5d0da3dc9764   23 months ago   231MB
registry                                             2.6.2       10b45af23ff3   3 years ago     28.5MB
owncloud                                             latest      327bd201c5fb   4 years ago     618MB
相关推荐
bitcsljl4 分钟前
Linux 命令行快捷键
linux·运维·服务器
ac.char7 分钟前
在 Ubuntu 下使用 Tauri 打包 EXE 应用
linux·运维·ubuntu
Youkiup35 分钟前
【linux 常用命令】
linux·运维·服务器
qq_2975046138 分钟前
【解决】Linux更新系统内核后Nvidia-smi has failed...
linux·运维·服务器
_oP_i44 分钟前
.NET Core 项目配置到 Jenkins
运维·jenkins·.netcore
weixin_437398211 小时前
Linux扩展——shell编程
linux·运维·服务器·bash
小燚~1 小时前
ubuntu开机进入initramfs状态
linux·运维·ubuntu
年薪丰厚1 小时前
如何在K8S集群中查看和操作Pod内的文件?
docker·云原生·容器·kubernetes·k8s·container
小林熬夜学编程1 小时前
【Linux网络编程】第十四弹---构建功能丰富的HTTP服务器:从状态码处理到服务函数扩展
linux·运维·服务器·c语言·网络·c++·http
zhangj11251 小时前
K8S Ingress 服务配置步骤说明
云原生·容器·kubernetes