需要下载registry的镜像并生成容器,尝试直接在虚拟机docker run 结果报错(忘记截图了)。布吉岛是啥原因,可能还是虚拟机docker的镜像源被禁了,但是布吉岛怎么给虚拟机的docker增加其他镜像源,so决定曲线救国。
1、先用本地的docker 执行:docker pull registry
2、执行:docker images 可以看到镜像已经下载到本地电脑啦
3、导出registry镜像,执行: docker save cfb4d9904335 -o registry.tar
cfb4d9904335为registry镜像的id
4、在C\windows\system32中即可找到registry.tar文件
5、使用winscp工具将registry.tar文件上传到虚拟机的/etc/docker目录下,这里不赘述,可能会出现权限不足无法上传的情况,需要把/etc/docker目录设置为所有人可写权限,执行
chmod 777 /etc/docker后再上传即可
6、在虚拟机的终端shell窗口中执行命令:
cd /etc/docker 切换到docker目录下
docker load < registry.tar 导入registry镜像
7、执行命令docker images,发现镜像成功导入虚拟机啦
8、执行如下命令安装容器:
docker run -d --restart=always --name registry -p 5000:5000 -v registry-data:/var/lib/registry registry
9、执行命令docker ps 显示容器状态,发现容器已经成功安装好啦,且运行正常ing!
10、往镜像仓库中上传本地的镜像,以test镜像版本v1为例
执行 docker tag test:v1 192.168.xx.xx:5000/test:v1
执行docker push 192.168.xx.xx:5000/test:v1
其中192.168.xx.xx为虚拟机的IP地址
执行push后出现报错Get "https://192.168.xx.xx:5000/v2/": http: server gave HTTP response to HTTPS client。是因为没有将虚拟机ip地址设置为docker信任的网站,打开docker engine设置,在配置文件中加入一行 "insecure-registries":["http://192.168.xx.xx:5000"] 保存设置即可,再次执行push,上传成功。
11、查看镜像是否成功上传
打开浏览器,在地址栏输入http://192.168.xx.xx:5000/v2/_catalog 访问
若出现如下内容,说明镜像上传成功
12、从私有镜像库拉取镜像
docker pull 192.168.xx.xx:5000/test:v1,成功将该镜像拉到本地