搭建docker registry
本机尝试,mac环境
搭建本地注册中心
1.运行docker pull命令拉取registry镜像.
docker pull registry
2、启动registry容器
docker run -p 5000:5000 -v ~/registry:/var/lib/registry -i -t -d --name registry registry:latest
Tip:
1、-p 将docker容器中的端口5000映射到宿主机5000端口上,可直接通过宿主机的5000端口访问
2、-v 将docker容器中的/var/lib/registry目录数据挂载到宿主机的~/registry目录上
3、-i 以交互模式启动docker 容器,不以-i模式启动时,无法在docker容器中使用命令
4、-t 开启了一个连接容器里边的terminal(终端)一般与-i一起使用 可写为-it
5、–name 容器名称
3、查看容器
docker ps -a
4、可进入容器中查看目录
sudo docker exec -it 容器id /bin/sh
Tip:此处使用sudo docker exec -it 容器id /bin/bash 会报错
5、将本地镜像推送到registry中,"centos_jdk11_maven"是我本地的一个基础镜像
1、docker tag centos_jdk11_maven 10.31.122.41:5000/base/centos_jdk11_maven
2、docker push 10.31.122.41:5000/base/centos_jdk11_maven
Tip:
10.31.122.41是 docker registry私服的ip
步骤2中push镜像时会报错
“Get https://10.31.122.41:5000/v2/: http: server gave HTTP response to HTTPS client”
查阅了很多资料都说要在”/etc/docker/“目录下,创建”daemon.json“文件。在文件中写入:
{ "insecure-registries":["10.31.122.41:5000"] }
并重启docker
但我在mac中没有找到该目录,最后在docker desktop的Preferences->Daemon中添加后重启即可
再次push镜像 成功
6、查看仓库镜像信息,使用浏览器访问http://10.31.122.41:5000/v2/_catalog 或者
curl http://10.31.122.41:5000/v2/_catalog
7、查看镜像信息
curl http://10.31.122.41:5000/v2/base/centos_jdk11_maven/tags/list
8、拉取私服镜像时
docker pull 10.31.122.41:5000/base/centos_jdk11_maven
私服搭建完毕!!!