docker中拉取镜像,一般都是通过 docker hub (在线存储库) 来获取的,在线存储库可以由任何用户发布和使用,但在涉及隐私项目或者公司处在内网就不太适用。
使用基于 registry镜像 来搭建我们自己的私有仓库,就能很好解决这个问题。
1、拉取registry指令,会默认拉取最新版本
docker pull registry
2、配置私有仓库地址
# 1、执行编辑路径,daemon.json文件原来没有的话,会新建的,可以用来配置docker
vim /etc/docker/daemon.json
# 2、加入"insecure-registries",IP是要配置私有仓库的ip地址
"insecure-registries":["192.168.62.33:5000"]
# 3、按esc 输入: wq 保存
# 4、保存之后重启一下
docker systemctl restart docker
image.png
3、创建容器
docker run -d -p 5000:5000 --name registry docker.io/registry
注意:docker.io
一定不要漏了,不然创建不了。
4、重新加载配置
sudo systemctl daemon-reload
这样私有仓库就搭建好了,可以访问:http://192.168.62.33:5000/v2/_catalog 进行验证,如下图,此时仓库还是空的,没有任何镜像。
5、上传镜像到私有仓库
-
我们先拉取一个“hello world” 简单镜像来进行举例说明一下。
image.png
docker pull hello-world
-
使用push指令推送到私有仓库中(和推送到阿里云差不多)
#1、标记hello-world该镜像需要推送到私有仓库
docker tag hello-world:latest 192.168.62.33:5000/hello-world:latest
#2、通过"push"指令推送到私有仓库
docker push 192.168.62.33:5000/hello-world:latest
如下图,hello-world就成功上传到了私有仓库中:
image.png
- 也可以使用命令在控制台查看私有仓库镜像
# "curl" 命令 查看仓库中的镜像
curl -X GET http://192.168.62.33:5000/v2/_catalog |python -m json.tool
# "curl" 命令 查看某个镜像的标签列表
curl -X GET http://192.168.62.33:5000/v2/hello-world/tags/list |python -m json.tool
# "curl" 命令 删除某个镜像的某个版本
curl -X DELETE http://192.168.62.33:5000/v2/hello-world/manifests/latest
image.png
网友评论