【docker】docker compose 搭建私服

news2024/12/23 17:44:59

安装 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.coloradmin.cn/o/1646914.html

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

相关文章

ASRPRO

https://gitee.com/gitee-128/ASR-PRO-U8G2/tree/main 不下载模型 语音就是天问51唤醒我 u8g2的移植过程 第一步 下载u8g2的源代码 第二步 修改 delay and 函数 第三步 添加头文件 显示 显示 动画 SPI I2C(SOFT SPI ;SOFT I2C U8G2 移植过程&#xff08;移植过程参考…

JUC基础概念

文章目录 JUC的基础概念什么是JUC进程与线程并行与并发线程的五种状态JUC的架构 JUC的基础概念 什么是JUC JUC 是 Java.utils.concurrent 包内的类&#xff0c;是为了开发者可以在多线程的情况下减少竞争条件和防止死锁而出现的。 进程与线程 进程&#xff1a;一个进程包含…

【LeetCode算法】389. 找不同

提示&#xff1a;此文章仅作为本人记录日常学习使用&#xff0c;若有存在错误或者不严谨得地方欢迎指正。 文章目录 一、题目二、思路三、解决方案 一、题目 给定两个字符串 s 和 t &#xff0c;它们只包含小写字母。字符串 t 由字符串 s 随机重排&#xff0c;然后在随机位置添…

大模型_基于医疗领域用lora微调ChatDoctor模型

文章目录 ChatDoctor目标方法结果结论收集和准备医患对话数据集创建外部知识数据库具有知识大脑的自主聊天医生的开发模型培训结果数据和模型&#xff1a; 微调推理 ChatDoctor 目标 这项研究的主要目的是通过创建一个在医学建议中具有更高准确性的专业语言模型&#xff0c;来…

[Flutter]创建一个私有包并使用

在Flutter中创建一个自己的私有组件&#xff08;通常称为包或库&#xff09;&#xff0c;并通过Dart的包管理工具pub进行使用。 一、创建一个新的Flutter包 1.使用命令行创建 使用Flutter命令行工具来创建一个新的包&#xff1a; $ flutter create --templatepackage my_pri…

ECS弹性云服务器居然这么好用。

引言 在过去的十年里&#xff0c;云计算从一个前沿概念发展为企业和开发者的必备工具。传统的计算模型通常局限于单一的、物理的位置和有限的资源&#xff0c;而云计算则通过分布式的资源和服务&#xff0c;为计算能力带来了前所未有的"弹性"。 云弹性服务器——为什…

N9048B PXE EMI 测试接收机,1 Hz 至 44 GHz

​ _EMI_ N9048B EMI 测试接收机 1 Hz 至 44 GHz Keysight N9048B PXE 是一款符合标准的 EMI 测试接收机&#xff0c;配有射频预选器和 LNA 设计。其实时扫描&#xff08;RTS&#xff09;功能有助于您缩短总体测试时间&#xff0c;轻松执行无间隙的信号捕获和分析。 特点 …

【人工智能基础】GAN与WGAN实验

一、GAN网络概述 GAN&#xff1a;生成对抗网络。GAN网络中存在两个网络&#xff1a;G&#xff08;Generator&#xff0c;生成网络&#xff09;和D&#xff08;Discriminator&#xff0c;判别网络&#xff09;。 Generator接收一个随机的噪声z&#xff0c;通过这个噪声生成图片…

视频改字祝福 豪车装X系统源码uniapp前端小程序源码

视频改字祝福 豪车装X系统源码uniapp前端小程序源码&#xff0c;创意无限&#xff01;AI视频改字祝福&#xff0c;豪车装X系统源码开源&#xff0c;打造个性化祝 福视频不再难&#xff01; 想要为你的朋友或家人送上一份特别的祝福&#xff0c;让他们感受到你的真诚与关怀吗&am…

若依前后端分离部署nginx

1、v.sj 2、生产环境修改 3、退出登录修改 4、路由改为hash模式 5、nginx配置 location /gldhtml/ {alias D:/java/tool/nginx-1.19.6/project/jxal/html/; } location /jxal/ {proxy_pass http://localhost:8081/; }

Rust Course学习(编写测试)

如果友友你的计算机上没有安装Rust&#xff0c;可以直接安装&#xff1a;Rust 程序设计语言 (rust-lang.org)https://www.rust-lang.org/zh-CN/ Introduce 介绍 Testing in Rust involves writing code specifically designed to verify that other code works as expected. It…

leetcode-岛屿数量-99

题目要求 思路 1.使用广度优先遍历&#xff0c;将数组中所有为1的元素遍历一遍&#xff0c;遍历过程中使用递归&#xff0c;讲该元素的上下左右四个方向的元素值也置为0 2.统计一共执行过多少次&#xff0c;次数就是岛屿数量 代码实现 class Solution { public:int solve(vec…

AWS宣布推出Amazon Q :针对商业数据和软件开发的生成性AI助手

亚马逊网络服务&#xff08;AWS&#xff09;近日宣布推出了一项名为“Amazon Q”的新服务&#xff0c;旨在帮助企业利用生成性人工智能&#xff08;AI&#xff09;技术&#xff0c;优化工作流程和提升业务效率。这一创新平台的推出&#xff0c;标志着企业工作方式的又一次重大变…

AIGC-音频生产十大主流模型技术原理及优缺点

音频生成(Audio Generation)指的是利用机器学习和人工智能技术&#xff0c;从文本、语音或其他源自动生成音频的过程。 音频生成行业是AIGC技术主要渗透的领域之一。AI音频生成行业是指利用人工智能技术和算法来生成音频内容的领域。按照输入数据类型不同可以分为&#xff1a;根…

multipass launch失败:launch failed: Remote ““ is unknown or unreachable.

具体问题情况如下&#xff1a; C:\WINDOWS\system32>multipass launch --name my-vm 20.04launch failed: Remote "" is unknown or unreachable.​C:\WINDOWS\system32>multipass lsNo instances found.​C:\WINDOWS\system32>multipass startlaunch fail…

[信息收集]-端口扫描--Nmap

端口号 端口号的概念属于计算机网络的传输层&#xff0c;标识这些不同的应用程序和服务而存在的。通过使用不同的端口号&#xff0c;传输层可以将接收到的数据包准确地传递给目标应用程序。 80&#xff1a;HTTP&#xff08;超文本传输协议&#xff09;用于Web浏览器访问网页 …

【论文泛读】如何进行动力学重构? 神经网络自动编码器结合SINDy发现数据背后蕴含的方程

这一篇文章叫做 数据驱动的坐标发现与方程发现算法。 想回答的问题很简单&#xff0c;“如何根据数据写方程”。 想想牛顿的处境&#xff0c;如何根据各种不同物体下落的数据&#xff0c;写出万有引力的数学公式的。这篇文章就是来做这件事的。当然&#xff0c;这篇论文并没有…

一文带你了解多数企业系统都在用的 RBAC 权限管理策略

前言 哈喽你好呀&#xff0c;我是 嘟老板&#xff0c;今天我们来聊聊几乎所有企业系统都离不开的 权限管理&#xff0c;大家平时在做项目开发的时候&#xff0c;有没有留意过权限这块的设计呢&#xff1f;都是怎样实现的呢&#xff1f;如果现在脑子里对于这块儿不够清晰&#…

作为全栈工程师,如何知道package.json中需要的依赖分别需要什么版本去哪里查询?

作为前端工程师&#xff0c;当你需要确定package.json中依赖的具体版本时&#xff0c;可以通过以下方法来查询&#xff1a; NPM 官网查询&#xff1a; 访问 npm 官网&#xff0c;在搜索框中输入你想查询的包名。在包的页面上&#xff0c;你可以看到所有发布过的版本号&#xff…

[leetcode] 63. 不同路径 II

文章目录 题目描述解题方法动态规划java代码复杂度分析 相似题目 题目描述 一个机器人位于一个 m x n 网格的左上角 &#xff08;起始点在下图中标记为 “Start” &#xff09;。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角&#xff08;在下图中标记为…