如何在Linux上搭建本地Docker Registry镜像仓库并实现公网访问

Linux 本地 Docker Registry本地镜像仓库远程连接

Docker Registry 本地镜像仓库,简单几步结合cpolar内网穿透工具实现远程pull or push (拉取和推送)镜像,不受本地局域网限制!

1. 部署Docker Registry

使用官网安装方式,docker命令一键启动,该命令启动一个registry的容器,版本是2,挂载宿主机端口是5000端口,挂载后,5000端口就是我们连接镜像仓库的本地端口

docker run -d -p 5000:5000 --name registry registry:2

执行后,输入docker ps ,我们可以看到运行的容器

2. 本地测试推送镜像

Docker Registry 运行正常后,本地测试推送一个镜像到Registry里面,这边测试把本地mysql镜像推送:

给镜像加上标签

docker image tag mysql localhost:5000/myfirstimage

推送

docker push localhost:5000/myfirstimage

可以看到推送成功,本地推送镜像到Docker Registry表示成功,下面安装cpolar 内网穿透工具,实现远程推送

3. Linux 安装cpolar

上面我们安装成功了Docker Registry本地镜像库,下面我们在Linux安装cpolar内网穿透工具,通过cpolar 转发本地端口映射的http公网地址,我们可以很容易实现远程连接,而无需自己注册域名购买云服务器.下面是安装cpolar步骤

cpolar官网地址: https://www.cpolar.com

  • 使用一键脚本安装命令
curl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh | sudo bash
  • 向系统添加服务
sudo systemctl enable cpolar
  • 启动cpolar服务
sudo systemctl start cpolar

cpolar安装成功后,在外部浏览器上访问Linux 的9200端口即:【http://局域网ip:9200】,使用cpolar账号登录,登录后即可看到cpolar web 配置界面,结下来在web 管理界面配置即可

4. 配置Docker Registry公网访问地址

点击左侧仪表盘的隧道管理——创建隧道,创建一个Docker Registry的http cpolar 公网地址隧道!

  • 隧道名称:可自定义命名,注意不要与已有的隧道名称重复
  • 协议:选择http
  • 本地地址:5000
  • 域名类型:免费选择随机域名
  • 地区:选择China vip

点击创建

image-20230920140230036

隧道创建成功后,点击左侧的状态——在线隧道列表,查看所生成的公网访问地址,有两种访问方式,一种是http 和https

image-20230920140536614

5. 公网远程推送Docker Registry

Docker Registry需要使用https进行推送,cpolar域名中默认支持https方式访问,所以更加方便,也无需我们设置其他.

首先标记镜像,然后推送,注意,https://协议名称不需要输入,可以看到,推送成功了,这样一个公网地址远程连接就设置好了!

image-20230920143908566

同样拉取也是可以的

image-20230920144311368

6. 固定Docker Registry公网地址

由于以上使用cpolar所创建的隧道使用的是随机公网地址,24小时内会随机变化,不利于长期远程访问。因此我们可以为其配置二级子域名,该地址为固定地址,不会随机变化【ps:cpolar.cn已备案】

注意需要将cpolar套餐升级至基础套餐或以上,且每个套餐对应的带宽不一样。【cpolar.cn已备案】

登录cpolar官网,点击左侧的预留,选择保留二级子域名,设置一个二级子域名名称,点击保留,保留成功后复制保留的二级子域名名称

image-20230920144725353

保留成功后复制保留成功的二级子域名的名称

image-20230920144830077

返回登录cpolar web UI管理界面,点击左侧仪表盘的隧道管理——隧道列表,找到所要配置的隧道,点击右侧的编辑

image-20230920150527018

修改隧道信息,将保留成功的二级子域名配置到隧道中

  • 域名类型:选择二级子域名
  • Sub Domain:填写保留成功的二级子域名

点击更新(注意,点击一次更新即可,不需要重复提交)

image-20230920150711591

更新完成后,打开在线隧道列表,此时可以看到公网地址已经发生变化,地址名称也变成了固定不变的二级子域名名称的域名

再次测试使用固定地址进行远程,可以看到成功了,这样一个固定且永久不变的公网地址就设置好了

image-20230920155453247

  • 40
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 21
    评论
搭建本地Docker镜像仓库的步骤如下: 1. 首先,你需要安装Docker,并确保Docker服务已经启动。 2. 创建一个用于存储镜像的目录,可以使用以下命令创建一个名为registry的目录: ``` mkdir registry ``` 3. 接下来,你需要启动一个私有镜像仓库容器,使用以下命令: ``` docker run -d -p 5000:5000 --restart=always --name registry -v /path/to/registry:/var/lib/registry registry:2 ``` 这将在本地启动一个名为registry的容器,并将端口5000映射到主机的5000端口。你可以根据需要修改端口号和目录路径。 4. 确保私有仓库容器已经成功启动,可以运行以下命令来检查容器的状态: ``` docker ps ``` 5. 现在,你可以将你的镜像推送到本地私有仓库。假设你的镜像名称是myhellodocker,使用以下命令将镜像推送到本地仓库: ``` docker push localhost:5000/myhellodocker ``` 这将把镜像推送到本地私有仓库,并可以在之后通过该地址进行访问。 6. 想要查看本地仓库中的镜像,你可以通过以下命令查看: ``` curl http://localhost:5000/v2/myhellodocker/tags/list ``` 这将返回镜像的标签列表。 注意:在这个过程中,我们使用了一个名为registry的容器来搭建本地私有仓库。你也可以使用其他的工具或平台来搭建本地私有仓库,但步骤可能会有所不同。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Docker镜像制作与仓库搭建](https://blog.csdn.net/qq_45752401/article/details/120547832)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 21
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值