【docker】docker compose 搭建私服

安装 Docker Registry

创建目录

mkdir -pv /usr/local/docker/registrymkdir -pv /usr/local/docker/data

创建 docker-compose.yml文件

进入目录创建docker-compose.yml

cd /usr/local/docker/registrytouch docker-compose.yml

编辑docker-compose.yml

vim docker-compose.yml

添加下面内容

version: '3'
services:registry:image: registryrestart: alwayscontainer_name: registryports:- 5000:5000volumes:- /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-frontendtouch docker-compose.yml

编辑docker-compose.yml

vim docker-compose.yml

添加下面内容

version: '3'
services:frontend:image: konradkleine/docker-registry-frontend:v2ports:- 8880:80volumes:- /usr/local/docker/data:/var/lib/registryenvironment:- 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.mzph.cn/bicheng/5892.shtml

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

相关文章

2024年【起重机械安全管理】考试内容及起重机械安全管理操作证考试

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 起重机械安全管理考试内容根据新起重机械安全管理考试大纲要求&#xff0c;安全生产模拟考试一点通将起重机械安全管理模拟考试试题进行汇编&#xff0c;组成一套起重机械安全管理全真模拟考试试题&#xff0c;学员可…

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

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

VS2022 嘿嘿

还是大二的时候就开始用这个&#xff0c;但居然是为了用PB&#xff0c;-_-|| 用了段时间换成了C#&#xff0c;依稀还记得大佬们纠正我的读法&#xff0c;别读C井&#xff0c;应该读C夏普。。。 安装过程其实也没啥&#xff0c;就是关键Key得花时间找&#xff0c;我好不容易搞…

Concise CoT(CCoT)提示词工程

原文地址&#xff1a;concise-chain-of-thought-ccot-prompting 2024 年 1 月 24 日 传统的 CoT 是以增加输出令牌使用为代价的&#xff0c;CCoT 提示是一种提示工程技术&#xff0c;旨在减少 LLM 响应的冗长和推理时间。 基于LLMs的生成式人工智能应用程序必须使用多管齐下的方…

【Linux】理解 Ubuntu 中的 kill 和 killall 命令

我把我唱给你听 把你纯真无邪的笑容给我吧 我们应该有快乐的 幸福的晴朗的时光 我把我唱给你听 用我炙热的感情感动你好吗 岁月是值得怀念的留恋的 害羞的红色脸庞 谁能够代替你呀 趁年轻尽情的爱吧 最最亲爱的人啊 路途遥远我们在一起吧 &#x1f3b5; 叶…

php使用Canal监听msyql

canal需要java8 去官网下载java8 安装JAVA #创建目录 mkdir -p /usr/local/java/ #解压到目录 tar zxvf jdk-8u411-linux-x64.tar.gz -C /usr/local/java/配置环境变量在 /etc/profile 最后加入 export JAVA_HOME/usr/local/java/jdk1.8.0_411 export CLASSPATH.:$JAVA_HOM…

【ZZULIOJ】1092: 素数表(函数专题)(Java)

目录 题目描述 输入 输出 样例输入 Copy 样例输出 Copy code 题目描述 输入两个正整数m和n&#xff0c;输出m和n之间的所有素数。 要求程序定义一个prime()函数和一个main()函数&#xff0c;prime()函数判断一个整数n是否是素数&#xff0c;其余功能在main()函数中实现。…

牛客NC320 装箱问题【中等 动态规划,背包问题 C++/Java/Go/PHP】

题目 题目链接&#xff1a; https://www.nowcoder.com/practice/d195a735f05b46cf8f210c4ad250681c 几乎完全相同的题目&#xff1a; https://www.lintcode.com/problem/92/description 思路 动态规划都是递归递推而来。php答案是动态规划版本&#xff0c;递归版本有 测试用…

uint32_t与int区别与联系

1.背景介绍 在一些程序中经常看到uint8_t uint32_t等数据类型&#xff0c;那么它与我们常见的int类型有什么区别呢。 2.协议介绍 stdint.h头文件是为了代码的可移植性而推出的&#xff0c;C99中就已经规范了。 3.代码可移植性 3.1 数据类型的差异 大部分的32位系统采用的…

基于Java+SpringBoot+Mybaties-plus+Vue+elememt+hadoop + redis 医院就诊系统 设计与实现

一.项目介绍 前端&#xff1a;患者注册 、登录、查看首页、医生排班、药品信息、预约挂号、就诊记录、电子病历、处方开药、我的收藏 后端分为&#xff1a; 医生登录&#xff1a;查看当前排班信息、查看患者的挂号情况、设置患者就诊记录、电子病历、给患者开药和个人信息维护 …

公共交通无障碍设施:科技翅膀助力盲人出行新飞跃

在城市的脉络中&#xff0c;公共交通扮演着连接每一个角落的重要角色。然而&#xff0c;对于视力受限的盲人朋友而言&#xff0c;这幅繁忙而复杂的交通网络往往隐藏着诸多不易察觉的障碍。值得庆幸的是&#xff0c;随着公共交通无障碍设施的不断完善&#xff0c;以及高科技辅助…

20240502给NanoPi的NEO core开发板编译移远的4G模块的上网程序quectel-CM

20240502给NanoPi的NEO core开发板编译移远的4G模块的上网程序quectel-CM 2024/5/2 16:29 1、默认编译为AMD64/INTEL的x64架构的可执行文件&#xff1a; rootrootrootroot-ThinkBook-16-G5-IRH:~$ rootrootrootroot-ThinkBook-16-G5-IRH:~$ unzip Quectel_QConnectManager_Lin…

CSS-复合选择器

作用&#xff1a; 后代选择器&#xff1a; 子代选择器 并集选择器 用逗号隔开&#xff0c;在style里面写的时候&#xff0c;每一个标签空一行。 <title>Document</title><style>p,div,span{color: aqua;}</style> </head> <body><p>…

C语言——队列的实现

队列按照先进先出&#xff08;FIFO&#xff0c;First In First Out&#xff09;的原则管理数据。这意味着最先进入队列的元素会被最先移出&#xff0c;类似于排队等候服务的情况。队列通常有两个主要操作&#xff1a;入队&#xff08;enqueue&#xff09;&#xff0c;将元素添加…

python - 3D图表绘制

Pyecharts 和 3D 图表绘制 Pyecharts 是一个用于生成各种图表的 Python 库&#xff0c;它基于 Echarts&#xff0c;支持大量的图表类型&#xff0c;非常适合用于数据分析和可视化。Pyecharts 主要优点是易于使用&#xff0c;可以直接在 Python 环境中绘制富有交互性的图表&…

ES练习项目-酒店搜索

目录 1 需求分析2 酒店搜索和分页2.1 请求和响应分析2.2 定义实体类&#xff0c;接收请求参数的JSON对象2.3 编写controller&#xff0c;接收页面的请求2.4 编写业务实现&#xff0c;利用RestHighLevelClient实现搜索、分页 3. 酒店结果过滤3.1 请求和响应分析3.2 修改请求参数…

【Python快速上手(十)】

目录 Python快速上手&#xff08;十&#xff09;Python3 作用域和OS 文件/目录方法Python3 作用域1. 内置作用域&#xff08;Built-in Scope&#xff09;2. 全局作用域&#xff08;Global Scope&#xff09;3. 嵌套作用域&#xff08;Enclosing Scope&#xff09;4. 局部作用域…

Django框架之模型层

一、前期准备 1、测试脚本 当你只是想要测试Django中的某一个py文件内容&#xff0c;那么你可以不用书写前后端交互的形式&#xff0c;而是直接写一个测试脚本即可 这内容其实就是最外部 manage.py 文件中的上面几句话 脚本代码无论是写在应用下的 tests.py文件还是自己新建…

结合创新!频域+时间序列,预测误差降低64.7%

频域时间序列不仅能提供更丰富的信息&#xff0c;还能提高模型性能和预测准确性。对于论文er来说&#xff0c;是个可发挥空间大、可挖掘创新点多的研究方向。 具体来说&#xff1a; 通过将复杂的时间序列数据转换成简单的频率成分&#xff0c;我们可以更容易地捕捉到数据的周期…

【人工智能基础】逻辑回归实验分析

实验环境&#xff1a;anaconda、jutpyter Notebook 实验使用的库&#xff1a;numpy、matplotlib 一、逻辑回归 逻辑回归是一个常用于二分类的分类模型。本质是&#xff1a;假设数据服从这个分布&#xff0c;然后使用极大似然估计做参数的估计。 二、实验准备 引入库、预设值…