目录
1)用docker容器运行registry私有仓库服务。
2)运行私有仓库服务
3)镜像重命名(要上传的镜像名需要注明私仓的ip)
4)编辑docker配置文件(因为默认是拉取docker官方的镜像,需要重新指定)
5)其他dockerhost上传私有仓库
修改docker配置文件
查看仓库有哪些镜像
1)用docker容器运行registry私有仓库服务。
注:registry是官方打包好的服务,端口为5000,就像其他虚拟出来的web服务一样
注意,这里我们使用的是registry:2版本,还有一个registry镜像,这两个没有什么大的区别。registry: 是用Python语言写的,registry:2使用Go 语言写的,理论上来说,registry:2这个版本运行更快些。
命令:
docker pull registry:2
2)运行私有仓库服务
命令:
docker run -itd --name registry --restart=always -p 5000:5000 -v /registry:/var/lib/registry registry:2
-v: 挂载目录。 宿主机的目录(如果没有此目录会自动创建):容器内的目录。(数据卷:实现容器与宿主机之间的共享,通过一个目录"卷")
--restart=always:随着docker服务的启动而启动此容器
3)镜像重命名(要上传的镜像名需要注明私仓的ip)
因为我们使用的私有镜像,在上传或下载的时候,都需要我们将镜像的名称直接重命名,要注明它私有仓库的IP地址:暴露端口。切记是必须,否则将识别不到仓库而上传或下载失败。
格式为:docker tag IMAGE[:TAG] [REGISTRY_HOST[:REGISTRY_PORT]/]REPOSITORY[:TAG]
命令:
docker tag nginx:latest 192.168.8.10:5000/nginx
4)编辑docker配置文件(因为默认是拉取docker官方的镜像,需要重新指定)
#初次上传命令:
docker push 192.168.8.10:5000/nginx #上传私有仓库会报错
#以下是报错:
#The push refers to repository [192.168.8.10:5000/nginx]
#Get https://192.168.8.10:5000/v2/: http: server gave HTTP response to HTTPS client
//上传镜像失败原因如下:
因为docker默认是从dockehub上下载镜像的,需要在本地指定一下私有仓库的IP加端口,这是因为 Docker默认不允许非HTTPS 方式推送镜像。 如果没做这一步,会报HTTPS的错。
#编辑docker的配置文件,指定私有仓库地址
vim /usr/lib/systemd/system/docker.service
修改:
[Service]
ExecStart=/usr/bin/dockerd --insecure-registry 192.168.8.10:5000
#修改完成之后重新加载docker和重启
systemctl daemon-reload
systemctl restart docker
#再次上传测试
docker push 192.168.8.10:5000/nginx:v1
本地dockerhost查看私有仓库镜像方法:进入到私有仓库的共享目录文章来源:https://www.toymoban.com/news/detail-609692.html
cd /registry/docker/registry/v2/repositories/
ls
5)其他dockerhost上传私有仓库
这里注意,既然是私有仓库,肯定是要考虑多台DockerHost共用的情况, 如果有其他的DockerHost想要使用私有仓库,仅需要修改docker的配置文件,指定私有仓库的IP和端口即可。当然别忘了,更改过配置文件之后, daemon-reload ,restart docker服务。文章来源地址https://www.toymoban.com/news/detail-609692.html
修改docker配置文件
vim /usr/lib/systemd/system/docker.service
[Service]
ExecStart=/usr/bin/dockerd --insecure-registry 192.168.8.10:5000
systemctl daemon-reload
systemctl restart docker.service
docker info
#看到私仓ip即为成功
Insecure Registries:
192.168.8.10:5000
127.0.0.0/8
查看仓库有哪些镜像
curl -XGET http://192.168.8.10:5000/v2/_catalog
-X/--request 指定什么命令
-G/--get 以get的方式来发送数据
-E/--cert cert[:passwd] 客户端证书文件和密码 (SSL)
-T/--upload-file 上传文件
curl http://localhost:5000/v2/_catalog #查看本地私有仓库镜像
curl http://192.168.8.10:5000/v2/nginx/tags/list
{"name":"nginx","tags":["latest"]} //并看到详细的自定义 版本号
到了这里,关于【云原生】Docker私有仓库registry的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!