搭建docker私有镜像仓库
一、前言
一般来说,我们都是通过docker hub、阿里云镜像仓库或者是其他的镜像仓库里拉取镜像,并且来使用的,虽然会带来一定的便捷性,但同时也会带来两方面的问题,一是他们走的是公网,速度不够快,二是假如公司的业务是做金融、证券或其他隐私行行业的话,会有一定的安全性问题,所以,搭建公司的私有镜像仓库就显得很有必要。
二、具体步骤
1、拉取registry镜像
docker pull registry:2
2、配置私有仓库地址
vim /etc/docker/daemon.json
输入如下参数,注意修改为自己的ip地址:
"insecure-registries": ["10.211.55.4:5000"]
:wq
保存退出,然后我们重启启动一下 docker
systemctl restart docker
3、创建容器
docker run -d -p 5000:5000 --restart=always --name registry registry:2
部分参数说明:
- -d:让容器在后台运行
- -p:指定容器内部使用的网络端口映射到我们使用的主机上
- --name:指定容器创建的名称
- --restart:容器本身或者是docker进程重启时,会一并重启
容器运行命令的其他参数说明:
- --network 指定容器运⾏的⽹路模式
- -v 指定需要挂载的数据卷
- -env 指定需要传递给容器的环境变量
4、重新加载配置
sudo systemctl daemon-reload
然后浏览器访问:http://10.211.55.4:5000/v2/_catalog
如果访问不到,尝试关闭防火墙:
systemctl stop firewalld
如果还是访问不不到,可以重启一下docker
sudo systemctl restart docker
然后重新运行一下容器
5、验证上传镜像到私有仓库
我们使用HelloWorld
镜像进行测试,首先先拉取一下:
docker pull hello-world
拉取之后我们看一下镜像名称及版本:
至此我们就有了一个 hello-world镜像,接下来我们使用 push 指令将镜像推送到刚刚搭建的registry中:
# 标记hello-world该镜像需要推送到私有仓库
docker tag hello-world:latest 127.0.0.1:5000/hello-world:latest
# 通过push指令推送到私有仓库
docker push 127.0.0.1:5000/hello-world:latest
再来访问:http://10.211.55.4:5000/v2/_catalog
我们可以看到私有仓库目录已经有刚刚推送上去的 hello-world
镜像了
6、验证从私有仓库下载镜像
验证完了上传,我们再来测试一下下载镜像
# 格式如下:
docker pull 127.0.0.1:5000/镜像名称:镜像版本号
# 以hello-world为例:
docker pull 127.0.0.1:5000/hello-world:latest
#或者是
docker pull 10.211.55.4:5000/hello-world:latest
通过ip也是可以拉取成功的,但是在这再额外补充一下,有的小伙伴可能提示如下:
这种显然是拉取失败了,提示大致就是,尝试从https上拉取,但是返回的是http响应,如何解决呢?
我们可以通过如下进行处理一下,xxx修改为自己的ip地址:
echo '{ "insecure-registries":["xxx.xxx.xxx.xxx:5000"] }' > /etc/docker/daemon.json
至此整个搭建过程完毕
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)