docker搭建私有的仓库

docker搭建私有仓库

一、为什么要搭建私有的仓库?

因为在国内,访问:https://hub.docker.com/ 会出现无法访问页面。。。。(已经使用了魔法)
在这里插入图片描述当然现在也有一些国内的镜像管理网站,比如网易云镜像服务、DaoCloud镜像服务、阿里云镜像服务等。但是有些收费的。戛然而止了。我们可以自己手动的在我们的服务器上进行搭建私有的仓库。Docker Registry,在企业中自己的镜像最好是采用私有Docker Registry来实现。

二、搭建私有镜像仓库(ubuntu版)

https://github.com/Joxit/docker-registry-ui/tree/2.0.0进行了解

1、检查docker

查看服务器上的docker 是否已经安装,使用docker -v进行检查,显示对应的版本号证明已经安装完
在这里插入图片描述

2、配置镜像

国内使用docker官方镜像会出现超时的问题,配置我们国内的镜像既可。执行下方命令。

cd /etc/docker
ls

在这里插入图片描述
进行编辑这个文件。

vim daemon.json

在文件中增加镜像源

 "registry-mirrors": ["https://docker.1panel.live"]

重启服务,执行下方命令

systemctl daemon-reload
systemctl restart docker

查看是否配置成功

docker info

显示如下信息,就证明配置成功
在这里插入图片描述

4、部署私有仓库–无UI界面

(1).无UI的简化版镜像仓库
  Docker官方的Docker Registry是一个基础版本的Docker镜像仓库,具备仓库管理的完整功能,但是没有图形化界面。

docker run -d \--restart=always \--name registry	\-p 5000:5000 \-v registry-data:/var/lib/registry \registry
	命令中挂载了一个数据卷registry-data到容器内的/var/lib/registry 目录,这是私有镜像库存放数据的目录。访问http://你的IP地址:5000/v2/_catalog 可以查看当前私有镜像服务中包含的镜像

5、部署私有仓库–有UI界面

当然也有有图形化界面的私有仓库,但是我们需要配置一些东西。

5.1、配置docker 信任的地址
  • 私服采用的是http协议,默认不被Docker信任,所以需要做一个配置:
# 打开要修改的文件
vi /etc/docker/daemon.json
# 添加内容:
# 需要将 http://192.168.175.128 替换为你自己的 ip
"insecure-registries":["http://192.168.175.128:8080"]
# 重加载
systemctl daemon-reload
# 重启docker
systemctl restart docker

在这里插入图片描述
注意:一定要加上逗号

拓展:如果遇见错误:Job for docker.service failed because start of the service was attempted too often. See "systemctl status docker.service" and "journalctl -xe" for details. To force a start use "systemctl reset-failed docker.service" followed by "systemctl start docker.service" again.
好多人碰到这个问题了,解决办法如下:
进入目录下修改配置文件名称,路径:cd /etc/docker 查看当前目录的配置文件,输入:ls 把daemon.json配置文件改成daemon.conf即可,命令:mv daemon.json daemon.conf 重新启动服务,命令:sudo service docker restart 然后再docker ps, 运行ok了 等运行成功后再改回来,不然推送镜像时推送不上去

5.2、创建docker-compose.yml 文件

Docker官方的Docker Registry因为带有图形化界面版本的镜像仓库不是官方提供的,而是由第三方个人基于 Docker 官方的 Docker Registry 进行开发的,所以部署时需要两个静像,我们使用 compose 文件进行部署
2.1执行下方命令创建yml 文件

mkdir /tmp/registry-ui
cd /tmp/registry-ui/
touch docker-compose.yml

填写如下内容

version: '3.0'
services:registry:image: registryvolumes:- ./registry-data:/var/lib/registryui:image: joxit/docker-registry-ui:staticports:- 8080:80environment:- REGISTRY_TITLE=私有仓库- REGISTRY_URL=http://registry:5000depends_on:- registry

 depends_on: - registry 表明 ui 依赖于 registry,所以这样就会先启动registry

5.3、启动

docker-compose up -d
查看启动状态
docker ps
在这里插入图片描述
说明已经启动成功。在浏览器输入ip地址加上8080端口就可以
http://192.168.175.128:8080/
在这里插入图片描述

6、测试

我们先测试一下镜像是否能够正常推上去。查看自己本地的镜像都有什么,docker images
在这里插入图片描述
其中镜像源:192.168.175.128:8080/redis 是测试时候用的镜像源。不用在意。我们拉取一个新的镜像源,使用docker pull nginx
在这里插入图片描述
查看存在的镜像源。docker images
在这里插入图片描述
可以看到我们的nginx镜像源已经拉取下来了。

6.1推送镜像源

前置条件,推送镜像到私有镜像服务必须先tag(就是将本地镜像重命名一下,他们的镜像 ID 都是一样的,本质上还是同一个镜像)所以我们先重新tag本地镜像,名称前缀为私有仓库的地址:这里我的地址为:192.168.175.128:8080,以 nginx 镜像为例,将 nginx:latest 镜像重命名为 192.168.175.128:8080/nginx:1.0

docker tag nginx:latest 192.168.175.128:8080/nginx:1.0

在这里插入图片描述
查看镜像源 docker images
在这里插入图片描述
可以进行推送了,往自己的私有仓库中

docker push 192.168.175.128:8080/nginx:1.0

在这里插入图片描述
此时已经推送成功。

6.2拉取镜像

我们将本地的nginx 镜像都删除。查看一下拉取的效果。
docker rmi 192.168.175.128:8080/nginx:1.0
docker rmi nginx:latest
注意:如果镜像正在被容器使用,可以使用 -f 选项进行强制删除
在这里插入图片描述
使用docker images 查看是否已经成功删除
在这里插入图片描述
进行拉取镜像。
docker pull 192.168.175.128:8080/nginx:1.0
显示如下信息,证明已经拉取到了。
在这里插入图片描述
再次查看镜像源。docker images
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/61900.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Linux】安装cuda

一、安装nvidia驱动 # 添加nvidia驱动ppa库 sudo add-apt-repository ppa:graphics-drivers/ppa sudo apt update# 查找推荐版本 sudo ubuntu-drivers devices# 安装推荐版本 sudo apt install nvidia-driver-560# 检验nvidia驱动是否安装 nvidia-smi 二、安装cudatoolkit&…

深度学习图像视觉 RKNN Toolkit2 部署 RK3588S边缘端 过程全记录

深度学习图像视觉 RKNN Toolkit2 部署 RK3588S边缘端 过程全记录 认识RKNN Toolkit2 工程文件学习路线: Anaconda Miniconda安装.condarc 文件配置镜像源自定义conda虚拟环境路径创建Conda虚拟环境 本地训练环境本地转换环境安装 RKNN-Toolkit2:添加 lin…

论文模型设置与实验数据:scBERT

Yang, F., Wang, W., Wang, F. et al. scBERT as a large-scale pretrained deep language model for cell type annotation of single-cell RNA-seq data. Nat Mach Intell 4, 852–866 (2022). https://doi.org/10.1038/s42256-022-00534-z 论文地址:scBERT as a…

Jenkins的环境部署

day22 回顾 Jenkins 简介 官网Jenkins Jenkins Build great things at any scale The leading open source automation server, Jenkins provides hundreds of plugins to support building, deploying and automating any project. 用来构建一切 其实就是用Java写的一个项目…

怎么编译OpenWrt镜像?-基于Widora开发板

1.准备相应的环境,我使用的环境是VMware16ubuntu20.04,如图1所示安装编译所需的依赖包; sudo apt-get install build-essential asciidoc binutils bzip2 gawk gettext git libncurses5-dev libz-dev patch python3 python2.7 unzip zlib1g-…

Python 获取微博用户信息及作品(完整版)

在当今的社交媒体时代,微博作为一个热门的社交平台,蕴含着海量的用户信息和丰富多样的内容。今天,我将带大家深入了解一段 Python 代码,它能够帮助我们获取微博用户的基本信息以及下载其微博中的相关素材,比如图片等。…

MySQL底层概述—1.InnoDB内存结构

大纲 1.InnoDB引擎架构 2.Buffer Pool 3.Page管理机制之Page页分类 4.Page管理机制之Page页管理 5.Change Buffer 6.Log Buffer 1.InnoDB引擎架构 (1)InnoDB引擎架构图 (2)InnoDB内存结构 (1)InnoDB引擎架构图 下面是InnoDB引擎架构图,主要分为内存结构和磁…

Linux---ps命令

​​​​​​Linux ps 命令 | 菜鸟教程 (runoob.com) process status 用于显示进程的状态 USER: 用户名,运行此进程的用户名。PID: 进程ID(Process ID),每个进程的唯一标识号%CPU: 进程当前使用的CPU百分比%MEM: 进程当前使用的…

企业OA管理系统:Spring Boot技术实现与案例研究

摘要 随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。本文介绍了企业OA管理系统的开发全过程。通过分析企业OA管理系统管理的不足,创建了一个计算机管理企业OA管理系统的方案。文章介绍了企业OA管理系统的系统分析部…

Charles抓包工具-笔记

摘要 概念: Charles是一款基于 HTTP 协议的代理服务器,通过成为电脑或者浏览器的代理,然后截取请求和请求结果来达到分析抓包的目的。 功能: Charles 是一个功能全面的抓包工具,适用于各种网络调试和优化场景。 它…

数据结构(顺序队列——c语言实现)

队列的概念: 队列是限制在两端进行插入和删除操作的线性表,允许进行存入的一端称为“队尾”,允许进行删除操作的一端称为“队头”。当线性表中没有元素时,称为“空队”。特点:先进先出(FIFO)。 …

Vulnhub靶场 Jangow: 1.0.1 练习

目录 0x00 准备0x01 主机信息收集0x02 站点信息收集0x03 漏洞查找与利用1. 命令执行2. 反弹shell3. 提权4. 补充4.1 其他思路4.2 问题 0x04 总结 0x00 准备 下载链接:https://download.vulnhub.com/jangow/jangow-01-1.0.1.ova 介绍: Difficulty: easy…

Fakelocation Server服务器/专业版 Centos7

前言:需要Centos7系统 Fakelocation开源文件系统需求 Centos7 | Fakelocation | 任务一 更新Centos7 (安装下载不再赘述) sudo yum makecache fastsudo yum update -ysudo yum install -y kernelsudo reboot//如果遇到错误提示为 Another app is curre…

【Ubuntu24.04】服务部署(虚拟机)

目录 0 背景1 安装虚拟机1.1 下载虚拟机软件1.2 安装虚拟机软件1.2 安装虚拟电脑 2 配置虚拟机2.1 配置虚拟机网络及运行初始化脚本2.2 配置服务运行环境2.2.1 安装并配置JDK172.2.2 安装并配置MySQL8.42.2.3 安装并配置Redis 3 部署服务4 总结 0 背景 你的服务部署在了你的计算…

深入解析 EasyExcel 组件原理与应用

✨深入解析 EasyExcel 组件原理与应用✨ 官方:EasyExcel官方文档 - 基于Java的Excel处理工具 | Easy Excel 官网 在日常的 Java 开发工作中,处理 Excel 文件的导入导出是极为常见的需求。 今天,咱们就一起来深入了解一款非常实用的操作 Exce…

Java爬虫:获取商品详情的实践之旅

在当今这个信息爆炸的时代,数据的价值日益凸显。对于电商行业来说,商品详情的获取尤为重要,它不仅关系到产品的销售,还直接影响到用户体验。传统的人工获取方式耗时耗力,而自动化的爬虫技术则提供了一种高效解决方案。…

C# 数据结构之【树】C#树

以二叉树为例进行演示。二叉树每个节点最多有两个子节点。 1. 新建二叉树节点模型 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;namespace DataStructure {class TreeNode{public int Data { get;…

单片机_简单AI模型训练与部署__从0到0.9

IDE: CLion MCU: STM32F407VET6 一、导向 以求知为导向,从问题到寻求问题解决的方法,以兴趣驱动学习。 虽从0,但不到1,剩下的那一小步将由你迈出。本篇主要目的是体验完整的一次简单AI模型部署流程&#x…

【Spiffo】环境配置:VScode+Windows开发环境

摘要: 在Linux下直接开发有时候不习惯快捷键和操作逻辑,用Windows的话其插件和工具都更齐全、方便,所以配置一个Windows的开发环境能一定程度提升效率。 思路: 自己本地网络内远程连接自己的虚拟机(假定用的是虚拟机…

使用eclipse构建SpringBoot项目

我这里用eclipse2018版本做演示,大家有需要的可以下载Eclipse Downloads | The Eclipse Foundation 1.打开eclipse,选择存放代码的位置 2.选择 file >> new >> project >> 选择springboot文件下的 spring starter project 2.这里选择N…