Docker私有仓库实战:官方registry镜像实战应用
抱歉抱歉,离职后反而更忙了,拖了好久,从4月拖到现在,在学习企业级方案Harbor之前,我们先学习下官方方案registry,话不多说,详情见下文。
注意:下文省略了基本认证 TLS加密(没必要)
1.1、拉取registry镜像
要部署私有仓库就要使用这个镜像
docker pull docker.io/library/registry:2
1.2、运行容器
将拉去来的镜像运行成容器
[root@docker ~]# docker run -d -v /home/dockerdata/registry:/var/lib/registry --name "pri_registry" --restart=always -p 5000:5000 registry:2 ac1b3e1cff8315339966787e35034cc50a4897282871bb539022ebb4f284410b
-d 放到后台
/home/dockerdata/registry表示为宿主机的目录,如果不存在自动创建
-v映射目录: 宿主机的目录:容器目录
把宿主机的目录挂载到容器中,将数据目录挂载出来就是为了防止docker私有仓库这个容器被删除的时候,仓库里面的镜像也被删除。
-p 端口映射:本地端口:容器端口
1.3、访问本机端口测试
访问刚刚开启的5000端口
[root@docker ~]# curl -i 127.0.0.1:5000HTTP/1.1 200 OKCache-Control: no-cacheDate: Mon, 12 May 2025 10:17:31 GMTContent-Length: 0
1.4、测试下载一个小的镜像
[root@docker ~]# docker pull docker.1ms.run/busyboxUsing default tag: latestlatest: Pulling from busybox265dab34035e: Pull complete Digest: sha256:37f7b378a29ceb4c551b1b5582e27747b855bbfaa73fa11914fe0df028dc581fStatus: Downloaded newer image for docker.1ms.run/busybox:latestdocker.1ms.run/busybox:latest
1.5、更改镜像名称
要修改才能上传至私有仓库,前面的IP是仓库宿主机的IP
[root@docker ~]# docker tag docker.1ms.run/busybox:latest 10.211.55.60:5000/busybox
1.6、修改请求方式
默认为https,不改会报以下错误:
[root@docker ~]# docker push 10.211.55.60:5000/busyboxUsing default tag: latestThe push refers to repository [10.211.55.60:5000/busybox]Get "https://10.211.55.60:5000/v2/": http: server gave HTTP response to HTTPS client
因为docker是不允许http下载的,配置文件的意思就是允许使用http下载
vim /etc/docker/daemon.json #不存在则创建
{ "insecure-registries":["本机的IP地址:5000"] }
{
"insecure-registries": ["10.211.55.60:5000"],
"registry-mirrors": [
"https://registry.cn-hangzhou.aliyuncs.com",
"https://docker.mirrors.ustc.edu.cn",
"https://hub-mirror.c.163.com"
]
}
修改完重启docker
systemctl restart docker
1.7、上传镜像到私有仓库
上传
[root@docker ~]# docker push 10.211.55.60:5000/busyboxUsing default tag: latestThe push refers to repository [10.211.55.60:5000/busybox]be632cf9bbb6: Pushed latest: digest: sha256:c109a60479ed80d63b17808a6f993228b6ace6255064160ea82adfa01c36deba size: 527
查看本地主机镜像存放目录
[root@docker ~]# ls /home/dockerdata/registry/docker/registry/v2/repositories/
busybox
1.8、查看私有镜像仓库里的所有镜像
[root@docker ~]# curl http://10.211.55.60:5000/v2/busybox/tags/list
{"name":"busybox","tags":["latest"]}
1.9、其他机器拉去私有仓库镜像测试
注意其他机器要拉取这个私有镜像仓库的话需要配置文件配置,因为docker是不允许http下载的,配置文件的意思就是允许使用http下载
注意:这里的IP地址是私有仓库对应的那台机器IP地址
vim /etc/docker/daemon.json #不存在则创建
{
"insecure-registries": ["10.211.55.60:5000"],
"registry-mirrors": [
"https://registry.cn-hangzhou.aliyuncs.com",
"https://docker.mirrors.ustc.edu.cn"
],
"storage-driver": "overlay2",
"log-opts": {
"max-size": "10m",
"max-file": "3"
}
}
[root@docker2 ~]# docker pull 10.211.55.60:5000/busyboxUsing default tag: latestlatest: Pulling from busybox6d4ad74debaa: Pull complete Digest: sha256:c109a60479ed80d63b17808a6f993228b6ace6255064160ea82adfa01c36debaStatus: Downloaded newer image for 10.211.55.60:5000/busybox:latest10.211.55.60:5000/busybox:latest
验证成功,以上就是官方的私有仓库搭建使用的基本教学了,感谢感谢。弟弟先去忙了