环境准备:
服务器:9.134.130.35 私有仓库服务器,运行registry容器
客户端:9.208.244.175 测试客户端,用于上传、下载镜像文件
测试搭建本地仓库
mkdir /docker/registry -p --创建主机目录
docker run -itd -v /docker/registry/:/docker/registry -p 5000:5000 --restart=always --name bert registry:latest
参数说明
1)-itd:在容器中打开一个伪终端进行交互操作,并在后台运行;
2)-v:把宿主机的/docker/registry目录绑定到容器/docker/registry目录(这个目录是registry容器中存放镜像文件的目录),来实现数据的持久化;
3)-p:映射端口;访问宿主机的5000端口就访问到registry容器的服务了;
4)--restart=always:这是重启的策略,假如这个容器异常退出会自动重启容器;
5)--name bert:创建容器命名为bert,可自定义任何名称;
6)registry:latest:这个是pull下来的镜像;
curl http://9.134.130.35:5000/v2/_catalog --查看仓库镜像文件,用浏览器访问也是同样的结果
客户端更改配置文件
vim /etc/docker/daemon.json --修改下载的镜像源,添加私有镜像服务器的地址
修改后需要重启docker才能生效
docker pull ubuntu:18.04 --客户端下载镜像
docker tag ubuntu:18.04 9.134.130.35:5000/ubuntu:18.04 --客户端对镜像修改tag
客户端上传镜像
docker push 9.134.130.35:5000/ubuntu
服务器查看镜像仓库
curl http://9.134.130.35:5000/v2/_catalog
curl http://9.134.130.35:5000/v2/ubuntu/tags/list
客户端删除本地镜像之后测试到远端服务器下载镜像