利用docker来部署自己的项目(续篇)

在上篇我们可以将自己的项目部署在服务器上,多个项目都可以。但在使用时发现,现在使用的仓库为公有的,如果想用作商业方面,从数据安全角度这会是个比较大的漏洞,基于此,本篇来说说部署私有仓库来保存自己的镜像。
参考私有化可以采用本地部署或者是通过gitlab来进行管理。
本地部署:

  1. 下载仓库镜像
#从中央仓库拉取最新的 registry 仓库。
docker pull registry
  1. 创建仓库文件夹
#主要是映射到本地用来保存镜像的仓库
mkdir /mnt/myregistry
  1. 启动仓库
#其中端口为5000
docker run -d -p 5000:5000 --restart=always -v /mnt/myregistry:/var/lib/registry  registry
  1. 查看仓库启动
docker ps

其结果如下:
在这里插入图片描述

  1. 地址访问
    其中,ip为本地仓库ip地址。
curl http://192.168.234.97:5000/v2/_catalog
#或者直接在网页里输入以上地址

在这里插入图片描述
6. 测试

#使用hello-world镜像进行测试,创建本地 tag
docker tag hello-world 192.168.234.97:5000/hello
#其中,hello-world换成自己的镜像名,hello为自己取的编号
  1. 推送到本地仓库
docker push 192.168.234.97:5000/hello
  1. 查看本地仓库
curl http://192.168.234.97:5000/v2/_catalog

发现并没有新增进来,并进行报错:
The push refers to a repository [192.168.234.97:5000/hello]
Get https://192.168.234.97:5000/v1/_ping: http: server gave HTTP response to HTTPS client
从网站上找到需要修改配置文件

touch /etc/docker/daemon.json
#写入配置
echo '{ "insecure-registries":["192.168.234.97:5000"] }' >  /etc/docker/daemon.json
#重新启动docker
systemctl restart docker
#再次尝试推送到本地仓库,可以成功
docker push 192.168.234.97:5000/hello

在经历这一套流程后发现
在这里插入图片描述
网上查到需要将.json修改为.conf,但这根本无法解决问题。
后来检查发现json的写法格式有问题,直接字典形式就可以了。

{
  "insecure-registries":["公网ip(别把22端口加上了):5000"]
}

最后结果就出来了
在这里插入图片描述
9. 查看镜像

http://192.168.234.97:5000/v2/hello/tags/list 

在这里插入图片描述
这样问题完美解决。
10. 本地下载

#这样便能将镜像下载在本地了
docker pull 127.0.0.1:5000/镜像名称:镜像版本号
例如:docker pull 127.0.0.1:5000/hello-world

然而,尽管可以将数据备份到本地,但是毕竟一个镜像大小就一两个G,特别占用资源。后面将写写企业级部署harbor以及gitlb部署。

未完待续… …

参考文章:
https://blog.csdn.net/lihao21/article/details/104274289
https://www.jianshu.com/p/a32c5a8d5ac0
https://www.sohu.com/a/327351423_468635

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值