【docker】docker compose 搭建私服

安装 Docker Registry

创建目录

mkdir -pv /usr/local/docker/registry

mkdir -pv /usr/local/docker/data

创建 docker-compose.yml文件

进入目录创建docker-compose.yml

cd /usr/local/docker/registry

touch docker-compose.yml

编辑docker-compose.yml

vim docker-compose.yml

添加下面内容

version: '3'
services:
  registry:
    image: registry
    restart: always
    container_name: registry
    ports:
      - 5000:5000
    volumes:
       - /usr/local/docker/data:/var/lib/registry

启动容器

docker-compose up -d


安装 Docker RegistryWeb页面

 创建目录

mkdir -pv /usr/local/docker/docker-registry-frontend

创建 docker-compose.yml文件

进入目录创建docker-compose.yml

cd /usr/local/docker/docker-registry-frontend

touch docker-compose.yml

编辑docker-compose.yml

vim docker-compose.yml

添加下面内容

version: '3'
services:
  frontend:
    image: konradkleine/docker-registry-frontend:v2
    ports:
      - 8880:80
    volumes:
	  - /usr/local/docker/data:/var/lib/registry
    environment:
      - ENV_DOCKER_REGISTRY_HOST=127.0.0.1
      - ENV_DOCKER_REGISTRY_PORT=5000

注释:  - ENV_DOCKER_REGISTRY_HOST=127.0.0.1  :Docker仓库的IP

启动容器

docker-compose up -d

浏览器访问

地址:http://ip:8880

效果如下:

注意事项

  • docker-registry-frontend 已停止更新,但它的功能基本上满足一般需求。
  • 如果需要使用其他端口或地址,确保在 docker-compose.yml 和 Docker 客户端配置中进行相应的更改。
  • 如果是生产环境,可能需要进一步配置和优化应用程序和安全设置。


配置客户端

编辑daemon.json

vi /etc/docker/daemon.json

增加内容

{
	"registry-mirrors": [
		"https://hub-mirror.c.163.com/"
	],
	"insecure-registries": [
		"Docker仓库IP:5000"
	]
}

重新启动服务

systemctl daemon-reload
systemctl restart docker


上传私服

查看镜像

docker images

对镜像打tag

语法:docker tag IMAGE[:TAG] [REGISTRY_HOST[:REGISTRY_PORT]/]REPOSITORY[:TAG]

注意:如果 Registry 监听在默认的 5000 端口上,通常不需要在地址中显式指定端口号。

docker tag demo:v1 192.168.0.1:5000/demo:v1

镜像push

语法:docker push <registry-host>:<registry-port>/<repository>:<tag>

docker push 192.168.22.179:5000/demo:v1

查看镜像

curl 192.168.0.1:5000/v2/_catalog

浏览器查看


问题1:

推送的时候

Get "https://192.168.0.1:5000/v2/": http: server gave HTTP response to HTTPS client
 

  1. 客户端期望 HTTPS:客户端(在这种情况下是 Docker 客户端)明确期望通过 HTTPS 进行通信,可能是因为配置了 HTTPS 或者使用了 https:// 作为 URL 的前缀。

  2. 服务器仅支持 HTTP:服务器配置为仅接受 HTTP 请求,而不是 HTTPS。

要解决这个问题,你可以采取以下几种方法之一:

方法 1:更改客户端以使用 HTTP

如果你的 Docker Registry 服务器没有配置 SSL/TLS(即没有 HTTPS 支持),你需要确保 Docker 客户端使用 HTTP 而不是 HTTPS 来访问它。这意味着你需要将所有的 https:// 替换为 http://

例如,如果你之前使用命令:

docker push https://192.168.0.1:5000/demo:tag

你需要更改为:

docker push http://192.168.0.1:5000/demo:tag

方法 2:配置服务器以支持 HTTPS

如果你希望 Docker Registry 通过 HTTPS 提供服务,你需要在服务器上安装 SSL 证书并配置它以接受 HTTPS 请求。这通常涉及到以下步骤:

  1. 获取或生成 SSL 证书。
  2. 配置 Docker Registry 以使用 SSL 证书。

方法 3:强制 Docker 客户端接受 HTTP

作为临时解决方案,你可以尝试在 Docker 客户端配置文件中添加一个不安全的项,以允许通过 HTTP 连接到 Registry。这可以通过编辑 /etc/docker/daemon.json 文件来实现,添加以下内容:

{ "insecure-registries" : ["192.168.0.1:5000"] }

然后,重启 Docker 服务:

sudo systemctl restart docker

请注意,这种方法可能会带来安全风险,因为它允许不安全的连接,所以不推荐在生产环境中使用。

方法 4:检查 Docker Registry 配置

确保 Docker Registry 配置正确。如果你使用的是 Docker Registry 的默认配置,通常它不会自动配置 HTTPS。你可能需要手动编辑配置文件来添加 HTTPS 支持。


下面是最近更新的文章:

【docker 】 安装docker(centOS7)-CSDN博客

【docker】常用命令-CSDN博客

【docker】centos7配置docker镜像加速_docker仓库加速地址-CSDN博客

【docker】Hello World-CSDN博客

【docker 】Compose 使用介绍_docker compose 使用-CSDN博客

【docker 】Compose安装-CSDN博客

【docker 】Dockerfile指令学习-CSDN博客

【docker】网络使用和配置_docker 启动使用host mode-CSDN博客

【docker】数据管理-CSDN博客

【docker】安装openjdk-CSDN博客

【docker】Spring Boot3.x 打包 Docker容器-CSDN博客

【docker】docker compose 搭建私服-CSDN博客

【docker】开放Docker端口-CSDN博客

【docker】maven 打包docker的插件学习-CSDN博客

【docker 】Windows10安装Docker Desktop - WSL update failed-CSDN博客




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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

探索洗牌算法的魅力与杨辉三角的奥秘:顺序表的实际运用

目录 目录 前言~&#x1f973;&#x1f389;&#x1f389;&#x1f389; 洗牌算法 准备工作 买一副牌 洗牌 发牌 测试整体 &#x1f3af;&#x1f3af;很重要的一点 杨辉三角 总结 前言~&#x1f973;&#x1f389;&#x1f389;&#x1f389; Hello, Hello~ …

YOLOv9/YOLOv8算法改进【NO.128】 使用ICCV2023超轻量级且高效的动态上采样器( DySample)改进yolov8中的上采样

前 言 YOLO算法改进系列出到这&#xff0c;很多朋友问改进如何选择是最佳的&#xff0c;下面我就根据个人多年的写作发文章以及指导发文章的经验来看&#xff0c;按照优先顺序进行排序讲解YOLO算法改进方法的顺序选择。具体有需求的同学可以私信我沟通&#xff1a; 首推…

PaLmTac嵌入软体手手掌的视触觉传感器

触觉是感知和操作之间的桥梁。触觉信息对于手部行为反馈和规划具有重要意义。软体手的柔性特性在人机交互、生物医学设备和假肢等方面具有潜在应用的优势。本文提出了一种名为 PaLmTac的嵌入软体手手掌的视触觉传感器&#xff08;vision-based tactile sensor, VBTS&#xff09…

使用 BurpSuite 基于 Token 机制实施暴力破解

前言 Token是一种用于身份验证和授权的令牌&#xff0c;通常由服务器生成并发送给客户端&#xff0c;客户端在后续的请求中携带该令牌来进行身份验证和授权操作。Token的使用可以增强应用程序的安全性&#xff0c;避免了直接传递敏感凭证&#xff08;如用户名和密码&#xff0…

Gradle 进阶学习之 Gradle插件

1、使用插件的原因 使用插件是现代自动化构建工具中一个非常重要的概念&#xff0c;Gradle 作为其中一个流行工具&#xff0c;通过插件提供了多种便利。以下是使用插件的几个主要原因&#xff1a; 促进代码重用 减少重复代码&#xff1a;插件允许你重用在不同项目中执行相同功…

Linux中gcc/g++的使用

文章目录 前言gcc/g 前言 gcc和g即为编译器。其中gcc为c语言的编译器&#xff0c;只能编译c语言&#xff1b;g为c的编译器&#xff0c;既能编译c语言&#xff0c;又能编译c。 在前面的文章中&#xff0c;我们提到代码转换成可执行程序需要经过 预处理&#xff08;进行宏替换)…

ID决策树的构造原理

前言 &#x1f3f7;️&#x1f3f7;️本章开始学习有关决策树的相关知识&#xff0c;决策树是一种树形模型&#xff0c;也是一种常用的分类和回归方法。本章我们首先介绍第一种决策树的构造原理 学习目标 了解决策树算法的基本思想掌握 ID3 决策树的构建原理 1.决策树介绍 …

Spring Cloud Kubernetes 实践 服务注册发现、服务动态配置

一、Spring Cloud Kubernetes 随着云计算和微服务架构的不断发展&#xff0c;k8s 和Spring Cloud成为了当今技术领域的两大热门话题。k8s作为一个开源的容器编排平台&#xff0c;已经在自动化部署、扩展和管理方面取得了巨大的成功&#xff0c;而Spring Cloud则以其丰富的生态…

区间预测 | PSO-RF-KDE的粒子群优化随机森林结合核密度估计多变量回归区间预测(Matlab)

区间预测 | PSO-RF-KDE的粒子群优化随机森林结合核密度估计多变量回归区间预测&#xff08;Matlab&#xff09; 目录 区间预测 | PSO-RF-KDE的粒子群优化随机森林结合核密度估计多变量回归区间预测&#xff08;Matlab&#xff09;效果一览基本介绍程序设计参考资料 效果一览 基…

傲软录屏(ApowerREC)一款简单好用的录屏软件,中文破姐版 v1.6.9.6(240501)

软件介绍 傲软录屏&#xff0c;是由ApowerREC开发的一款高级录屏软件&#xff0c;兼容多个操作系统平台&#xff0c;包括Windows、Mac以及基于安卓和iOS的设备。这款专业工具具备捕捉各类屏幕活动的能力&#xff0c;确保音视频同步&#xff0c;无论用户是进行电脑桌面操作、参…

C++string类使用大全

目录 温馨提示&#xff1a;这篇文章有约两万字 什么是string类&#xff1f; 一. 定义和初始化string对象 1.string的构造函数的形式&#xff1a; 2.拷贝赋值运算符 3.assign函数 二.string对象上的操作 1.读写string对象 2.读取未知数量的string对象 3.使用getline …

软件工程毕业设计选题100例

文章目录 0 简介1 如何选题2 最新软件工程毕设选题3 最后 0 简介 学长搜集分享最新的软件工程业专业毕设选题&#xff0c;难度适中&#xff0c;适合作为毕业设计&#xff0c;大家参考。 学长整理的题目标准&#xff1a; 相对容易工作量达标题目新颖 1 如何选题 最近非常多的…

Mac brew安装Redis之后更新配置文件的方法

安装命令 brew install redis 查看安装位置命令 brew list redis #查看redis安装的位置 % brew list redis /usr/local/Cellar/redis/6.2.5/.bottle/etc/ (2 files) /usr/local/Cellar/redis/6.2.5/bin/redis-benchmark /usr/local/Cellar/redis/6.2.5/bin/redis-check-ao…

高级商务谈判口才培训教程(3篇)

高级商务谈判口才培训教程&#xff08;3篇&#xff09; 高级商务谈判口才培训教程&#xff08;**篇&#xff09;&#xff1a;基础篇 一、前言 在高级商务谈判中&#xff0c;口才不仅是交流的工具&#xff0c;更是策略执行的关键。本教程将从基础出发&#xff0c;带领大家逐步掌…

【PHP】安装指定版本Composer

1、下载指定版本composer.phar文件&#xff1a;https://github.com/composer/composer/releases 2、将下载的文件添加到全局路径&#xff1a; sudo mv composer.phar /usr/local/bin/composer 3、赋予权限&#xff1a; sudo chmod x /usr/local/bin/composer 4、查看compos…

52.HarmonyOS鸿蒙系统 App(ArkTS)配置文件添加多个权限方法

52.HarmonyOS鸿蒙系统 App(ArkTS)配置文件添加多个权限方法 module.json5

前端开发者如何在项目里控制修改组件的样式

1为了让自己快速下班&#xff0c;修改样式应该是占据大部分时间&#xff0c;在很多组件库的项目里&#xff0c;都会提到主题设置。 比如element的scss配置变量&#xff0c;通常有人喜欢直接引入css样式来快速完成任务&#xff0c;然后在全局覆盖这些选择器对应的样式&#xff0…

OpenCV(二)—— 车牌定位

从本篇文章开始我们进入 OpenCV 的 Demo 实战。首先&#xff0c;我们会用接下来的三篇文章介绍车牌识别 Demo。 1、概述 识别图片中的车牌号码需要经过三步&#xff1a; 车牌定位&#xff1a;从整张图片中识别出牌照&#xff0c;主要操作包括对原图进行预处理、把车牌从整图…

信号知识详解

目录 1、信号的产生 2、core 核心转储 3、信号的保存 4、信号的处理 信号是linux系统提供的&#xff0c;让用户或进程给其他进程发送异步信息的一种方式。 常见的信号处理方式&#xff1a; 1、默认行为 2、忽略 3、自定义 1、信号的产生 1、kill命令 我们可以使用命令 k…

过渡与动画

单元素/组件过渡 Vue在插入、更新或者移除 DOM 时&#xff0c;提供多种不同方式的过渡效果&#xff08;一个淡入淡出的效果&#xff09; 在条件渲染&#xff08;使用v-if&#xff09;、条件展示&#xff08;使用v-show&#xff09;、动态组件、组件根节点等情形中&#xff0c;可…
最新文章