相关环境
macOS: bigsur 11.7.8
docker desktop: 4.22.0
docker engine: 24.0.5
准备工作
本机已经安装好docker desktop,未安装的自行参考其他教程。如果不能翻墙,可以修改本地的镜像地址,可在docker desktop 设置中的docker engine中修改,如下图:
也可直接修改 ~/.docker/daemon.json文件,然后重启docker,如下图:
安装registry私有仓库
下载并运行 registry 私有仓库
docker run -d -p 5000:5000 --restart=always -v /opt/docker/registry:/var/lib/registry --name registry registry:latest
查看私有仓库中的镜像
curl 127.0.0.1:5000/v2/_catalog
修改 ~/.docker/daemon.json文件,增加insecure-registries,以此来避免docker对http的校验,地址可以设为域名或者其他内网地址,供其他用户使用。
至此本地私有镜像库已安装完成,目前没有设置用户密码登安全设置,可参考其他教程进行设置。
安装Registry WebUI
为了查看私有库里的镜像更加方便,可以安装webui,通过浏览器来查看镜像。
下载并运行 Docker Registry WebUI
docker run -d -p 5001:80 --restart=always --env ENV_DOCKER_REGISTRY_HOST=172.17.0.2 --env ENV_DOCKER_REGISTRY_PORT=5000 --name registry-web konradkleine/docker-registry-frontend:v2
注意:其中ENV_DOCKER_REGISTRY_HOST不能填宿主机IP(否则报503错误),要填registry容器的IP地址。
浏览器访问:http://localhost:5001/,可以查看私有库下的所有镜像
本地上传镜像到私有库
本地上传需要打包时,镜像名称包含本地私有库地址,例如:
### 最后的点为Dockerfile所在目录
docker build -t 127.0.0.1:5000/test-app:1.0.0 .
打包完成后推送至私有库
docker push 127.0.0.1:5000/test-app:1.0.0