搭建Docker本地私有镜像仓库
在使用Docker service create创建容器时,Docker首先默认从Docker Hub官方去下载镜像,这很不方便,很多时候我们的镜像都是使用Dockerfile自定义私有镜像,不对外公开,而且为了安全期间docker可能在内外环境下运行,所以我们有必要搭建一套docker本地私有镜像仓库,以供整个内外集群环境使用。
下面我们使用docker官方提供的registry镜像搭建私有仓库
一、搭建非https访问的私有镜像仓库
#私有镜像仓库服务器ip和对应域名,集群内所有服务器都提前做好解析
vi /etc/hosts #添加以下解析
192.168.21.8 hub.osyunwei.com
:wq! #保存退出
#下载镜像
docker pull registry:latest
#创建镜像挂载目录
mkdir -p /docker/data/registry
#创建容器
docker run -d -p 5000:5000 --name registry --restart always -v /docker/data/registry:/var/lib/registry registry:latest
参数说明:
-p 5000:5000 #端口映射,前面是宿主机:后面是容器内
--name registry #容器名称
--restart always #宿主机重启后容器自启动
-v /docker/data/registry:/var/lib/registry #目录映射,容器被删除后仓库内的镜像不会丢失,默认情况下仓库在容器内的/var/lib/registry目录下
registry:lates #使用的镜像名称
#查看启动的容器
docker ps -a
#默认Docker只支持https的地址,为了使用http协议的地址,集群内所有的服务器需要把私有仓库地址添加到daemon.json文件中
#在daemon.json文件中添加私有镜像仓库地址,注意要用逗号连接
cp /etc/docker/daemon.json /etc/docker/daemon.json-bak
vi /etc/docker/daemon.json
{
"insecure-registries": ["hub.osyunwei.com:5000"],
"registry-mirrors": ["https://t1fyrekt.mirror.aliyuncs.com","https://hub-mirror.c.163.com","https://mirror.baidubce.com/"]
}
:wq! #保存退出
#重启docker服务
systemctl restart docker.service
#如果不对私有仓库命名的话,docker默认访问的是官方仓库docker hub
#私有仓库镜像的命名规则:宿主机ip地址或域名:端口号/镜像名:版本
#修改镜像标签
docker tag nginx:1.20.1 hub.osyunwei.com:5000/nginx:1.20.1
docker tag php-fpm:8.0.11 hub.osyunwei.com:5000/php-fpm:8.0.11
docker tag mysql:v8.0.26 hub.osyunwei.com:5000/mysql:v8.0.26
#上传镜像
docker push hub.osyunwei.com:5000/nginx:1.20.1
docker push hub.osyunwei.com:5000/php-fpm:8.0.11
docker push hub.osyunwei.com:5000/mysql:v8.0.26
#列出私有仓库的所有镜像
curl -X GET http://hub.osyunwei.com:5000/v2/_catalog
#集群内其他服务器下载镜像
docker pull hub.osyunwei.com:5000/nginx:1.20.1
docker pull hub.osyunwei.com:5000/php-fpm:8.0.11
docker pull hub.osyunwei.com:5000/mysql:v8.0.26
本文参考:https://www.osyunwei.com/archives/11928.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)