master:192.168.1.110
node:192.168.1.111
docker(镜像仓库):192.168.1.119
#本机的所有虚拟机都和本机网络互通,虚拟机都可以上网
1、修改/etc/hosts(docker本地镜像仓库操作)
192.168.1.119 docker
设置网易云镜像仓库为本地下载的仓库,并且设置本机为镜像上传的仓库
cat > /etc/docker/daemon.json << EOF
{"registry-mirrors": ["http://hub-mirror.c.163.com"],"insecure-registries": [ "192.168.1.119:5000","docker:5000"]}
EOF
systemctl daemon-reload
systemctl restart docker
3、下载registry仓库管理服务(链接:https://pan.baidu.com/s/1JI4Bb9sFHyEd6izaXc47OQ 提取码:rf5s)下载的tar包需要进行导入“docker load < registry.tar”,或者在线下载网易云的镜像
docker pull registry
如果出现下方报错信息
Error response from daemon: Get https://registry-1.docker.io/v2/: dial tcp: lookup registry-1.docker.io on [::1]:53: read udp [::1]:34106->[::1]:53: read: connection refused
那是因为,虚拟机没有通过dns获取到网易云的地址
处理方法
4、处理方法
修改/etc/sysconfig/network-scripts/ifcfg-ens33,添加下方的dns。
DNS1=114.114.114.114
systemctl daemon-reload
systemctl restart network
5、创建registry容器
#创建容器镜像存放路径挂载到外面的路径
mkdir -p /data/registry
docker run -itd -v /data/registry:/var/lib/registry -p 5000:5000 --restart=always --name registry registry:latest
#详情
-itd:在容器中打开一个伪终端进行交互操作,并在后台运行;
-v:把宿主机的/data/registry目录绑定 到 容器/var/lib/registry目录(这个目录是registry容器中存放镜像文件的目录),来实现数据的持久化;
-p:映射端口;访问宿主机的5000端口就访问到registry容器的服务了;
--restart=always:这是重启的策略,假如这个容器异常退出会自动重启容器;
--name registry:创建容器命名为registry,你可以随便命名;
registry:latest:这个是刚才pull下来的镜像;
6、测试registry服务情况
curl http://127.0.0.1:5000/v2/_catalog
{"repositories":[]} #没有任何镜像
#查看镜像的版本
curl http://127.0.0.1:5000/v2/nginx/tags/list
curl http://docker:5000/v2/nginx/tags/list
{"name":"nginx","tags":["latest","v1"]}
----------------------------------------------------------------------------------------------------------------------------------------------------
curl http://k8s-docker:5000/v2/mysql/tags/list
{"name":"mysql","tags":["latest"]}
#下载测试镜像nginx,以网易云为镜像仓库进行下载
docker pull nginx
7、给镜像打标签
docker tag nginx docker:5000/nginx:v1.0.0
8、上传镜像到本地仓库
docker push docker:5000/nginx:v1.0.0
9、登录node服务器(测试私人仓库服务器)
cat > /etc/docker/daemon.json << EOF
{"insecure-registries": [ "192.168.1.119:5000","docker:5000"]}
EOF
systemctl daemon-reload
systemctl restart network
10、下载私人仓库中的nginx镜像(node节点操作)
docker pull docker:5000/nginx:v1.0.0
11、查看下载本地镜像
docker images|grep nginx