docker官方给我们提供了一个私服registry用于管理自己的私有镜像,官网地址如下:
https://hub.docker.com/_/registry
1、拉取镜像,安装密码工具
#安装htpasswd工具。
yum -y install httpd-tools #拉取官方私服镜像,可以不指定版本,拉取最新的
docker pull registry:2.7.1
2、启动私有仓库容器
#创建本地目录用于存储镜像
mkdir -p /opt/docker-image/registry ---- 上传的镜像存储磁盘目录
mkdir -p /data/docker.registry/etc/registry/auth ---- 登录私服密码存储目录
#创建本地密码【私服的密码】
htpasswd -Bbn 用户名 密码 > /data/docker.registry/etc/registry/auth/passwd
#启动私有仓库【端口注意占用5000】
docker run -itd -p 5000:5000 \
-v /opt/docker-image:/opt/docker-image \
-v /data/docker.registry/etc/registry/auth:/etc/registry/auth \
-e "REGISTRY_AUTH=htpasswd" \
-e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" \
-e "REGISTRY_AUTH_HTPASSWD_PATH=/etc/registry/auth/passwd" \
--privileged=true --name registry --restart=always registry:2.7.1
registry的端口是5000
3、访问私服
打开浏览器 输入地址
http://私有仓库服务器ip:5000/v2/_catalog ps:若看到 {"repositories":[]} 则表示私有仓库搭建成功
这里私服虽然构建成功,但是我们还要配置docker跟私服的关联,不然docker不会去我们搭建私服拉取 镜像
--------------------------------下面开始为连接私服------------------------------
4、docker 添加私服仓库地址
ps:此处和设置阿里云镜像加速器的位置一样
#编辑配置文件
vi /etc/docker/daemon.json #增加仓库配置信息
# 在daemon.json中添加以下 key,保存退出。此步用于让 docker 信任私有仓库地址
"insecure-registries":["私服所在ip:5000"]
5、重启docker
#重启docker守护进程
sudo systemctl daemon-reload #重启docker服务
sudo systemctl restart docker
6、查看docker信息确认仓库是否添加
docker info
7、上传镜像
#登录私服---登录一次即可
docker login -u 用户名 -p 密码 私有仓库ip:端口
#给镜像打标签,tag用于后续推送时,区分要推送的仓库,例如安装了好几个私服,推送的代码都是docker push,推送给谁只能用tag区分
docker tag 镜像:版本 私有仓库ip:端口/镜像:版本
#推送私有仓库
docker push 私有仓库ip:端口/新镜像名:版本
8、浏览器查看上传的镜像
http://私服ip:5000/v2/镜像的名字/tags/list
9、从私服拉取镜像
docker pull 私服ip:5000/镜像名:版本