基于docker搭建owncloud Harbor 构建镜像
环境介绍:ContenOS7.9 docker17.12.1-ce
使用mysql:5.7和 owncloud 镜像,构建一个个人网盘。
docker pull owncloud #拉取镜像
docker pull mysql5.7
创建容器
docker run --name owncloud-mysql -p 3306:3306 -e MYSQL\_ROOT\_PASSWORD=root -v /haha/owncloud/mysql:/var/lib/mysql mysql:5.7
docker run --name owncloud --link owncloud-mysql:mysql -v /haha/data/ownclouddata:/data -p 8080:80 -d owncloud
安装搭建私有仓库 Harbor
Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器,harbor使用的是官方的docker registry(v2命名是distribution)服务去完成
安装harbor之前安装需要docker 和docker compos
注意:由于 Harbor 是基于 Docker Registry V2 版本,所以 docker 版本必须 >=1.10.0 docker-compose >=1.6.0
下载docker-compose
curl -L "https://github.com/docker/compose/releases/download/1.22.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

安装harbor
官网下载地址:Releases · goharbor/harbor (github.com)

解压后 目录中没有 harbor.yml 文件 cp harbor.yml.tmpl 文件并改名为harbor.yml
编辑 harbor.yml文件
更改hostname 为自己的主机名称 或者ip地址 更改端口 https 不启用就直接注释

使用./intall.sh安装
使用浏览器访问 ip+端口号

基于centos7创建nginx镜像
具体要求
(1)基于centos基础镜像;
(2)指定作者信息;
(3)安装nginx服务,将提供的dest目录(提供默认主页index.html)传到镜像内,并将dest目录内的前端文件复制到nginx的工作目录;
(4)暴露80端口;
(5)设置服务自启动。
(6)验证镜像。
创建扩展dockfile目录
[root@RHCE dockerfile]# pwd
/path/to/dockerfile
编辑epel扩展仓库
vim epel.repo
[epel]
name="epel源"
baseurl=https://repo.huaweicloud.com/epel/7/x86_64/
gpgcheck=0
创建index.html文件 内容随机想写什么写什么;列如:爱坤 666
vim index.html (我这里是直接重/etc/share/nginx/html cp 过来的 )

编辑dockfile文件
vim dockfile
FROM centos:7
MAINTAINER "newnginx <newnginx@com>" //编辑作者信息
COPY epel.repo /etc/yum.repos.d // 复制epel.repo 相当于 copy
ENV PATH /usr/local/nginx/sbin:$PATH
ADD nginx-1.22.1.tar.gz /usr/local/ // 也是copy 只是会自动解压
RUN yum -y install epel-release.noarch
RUN yum install -y wget lftp gcc gcc-c++ make openssl-devel pcre-devel pcre && yum clean all
RUN useradd -s /sbin/nologin -M www
WORKDIR /usr/local/nginx-1.22.1
RUN ./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_ssl_module --with-pcre && make && make install
COPY index.html /usr/share/nginx/html/
EXPOSE 80
CMD ["nginx","-g","daemon off;"]
上传源码包 nginx-1.22.1.tar.gz

以上条件成立后 就可以生成镜像了
docker build -t nginx:v1.1 -f dockfile .
使用 dockers imags 查看镜像是否生成

基于此镜像创建容器
docker run --name web1 -p 83:80 nginx:v1.1
创建成功后 使用浏览器访问 (使用物理机的地址+端口)

接下来上传镜像到私人仓库 这里我们使用harbor
在上传之前 需要在 /etc/docker 文件下面修改 daemon.json文件


我这里就用本机访问
{
"registry-mirrors": ["https://registry.docker-cn.com"],
"insecure-registries": ["http://192.168.100.146:5100"]
}systemctl daemon-reload //重载systemctl restart docker // 重启
划重点(当你登录被拒绝)
daemon.json 后缀名是否错误
更改 harbor.yml文件后 记得重新运行脚本 也就是./install.sh

[root@RHCE harbor]# docker-compose up -d 启动harbor服务 关闭直接使用down
登录

把要上传的镜像打上合适的标签并推送
[root@RHCE harbor]# docker tag nginx:v1.1 192.168.100.146:5100/library/newnginx
[root@RHCE harbor]# docker push 192.168.100.146:5100/library/newnginx

在仓库中拉取镜像 (验证)
[root@RHCE harbor]# docker pull 192.168.100.146:5100/library/newnginx:v1.1

验证镜像
[root@RHCE docker]# docker run --name web2 -p 83:80 192.168.100.146:5100/library/newnginx

使用浏览器访问

基于centos7快速搭建自己专属的LAMP环境,生成镜像lamp:v1.1
具体要求如下:
(1)基于centos:6基础镜像;
(2)指定作者信息;
(3)安装httpd、mysql、mysql-server、php、php-mysql、php-gd;
(4)暴露80和3306端口;
(5)设置服务自启动。
(6)验证镜像。
创建dockfile目录
RUN yum install -y httpd mysql mysql-server php php-mysql php-gd
RUN echo "ServerName localhost:80" >> /etc/httpd/conf/httpd.conf
EXPOSE 80/tcp
EXPOSE 3306/tcp
CMD ["httpd","-DFOREGROUND"]

生成镜像
docker build -t lamp:v1.1 -f dockfile .
运行容器 检测镜像是否正常
docker run --name lamp -p 81:80 lamp:v1.1
测试(浏览器访问)

上传镜像到私有仓库
打标签
docker tag 192.168.100.146:5100/library/lamp:v1.1 lamp:v1.1
推送
docker push 192.168.100.146:5100/library/lamp


测试
删除本镜像

拉取镜像
[root@RHCE web2]# docker pull 192.168.100.146:5100/library/lamp:v1.1

运行
docker run -d --name web1 -p 82:80 192.168.100.146:5100/library/lamp:v1.1


相关文章:
基于docker搭建owncloud Harbor 构建镜像
环境介绍:ContenOS7.9 docker17.12.1-ce 使用mysql:5.7和 owncloud 镜像,构建一个个人网盘。 docker pull owncloud #拉取镜像 docker pull mysql5.7 创建容器 docker run --name owncloud-mysql -p 3306:3306 -e MYSQL\_ROOT\_PASSWORDroot …...
往Buildroot中增加Qt项目
前言 目的:应用开发时最初是没有和buildroot中一起编译时,后面应用程序写的差不多时,同事问我怎么把应用程序打包到文件系统中,然后发布时跟随文件系统一起发布,并且增加打包启动脚本。所以本文在已经可以单独编译的基…...
C#-Tolewer和ToUpper的使用
目录 简介: 好处: 过程: 总结: 简介: 字符串是不可变的,所以这些函数都不会直接改变字符串的内容,而是把修改后的字符串的值通过函数返回值的形式返回。 ToLower和ToUpper是字符串处理函数,用于将字符中的英文字母转换为小…...
RabbitMQ集群搭建和测试总结_亲测
RabbiMQ简介 RabbitMQ是用Erlang开发的,集群非常方便,因为Erlang天生就是一门分布式语言,但其本身并不支持负载均衡。 RabbitMQ模式 RabbitMQ模式大概分为以下三种: (1)单一模式。 (2)普通模式(默认的集群模式)。 (3)镜像模式(把需要的队列…...
SQLSTATE[IMSSP]: The active result for the query contains no fields.
我的是SQL server 报错场景,代码: $psendmx_sql"SET IDENTITY_INSERT PSENDMX ON;INSERT INTO psendmx (DJBH,MIBH,MXBH,SPDM,GG1DM,GG2DM,SL,SL_2,CKJ,ZK,DJ,DJ_1,JE,HH) VALUES {$mx_values};SET IDENTITY_INSERT PSENDMX OFF;"; $a$db_er…...
在Flutter应用内部实现分屏功能
前言 这一次被要求实现屏幕上同时展示两个页面,并且两个页面的逻辑,功能互不影响,通俗一点讲就是在Flutter内部实现一个类似于分屏的功能,这可难不倒我。 方法 要在 Flutter 中实现一个屏幕的上半部分和下半部分展示不同的页面…...
Docker常用操作命令(二)
Docker常用操作命令(二) 11、进入容器 docker exec -it 容器名称or容器ID /bin/bash [rootzch01 ~]# docker exec -it 973ff3caff19 /bin/bash 退出容器 root973ff3caff19:/# exit 12、查看容器中的进程 docker top 容器名称or容器ID [rootzch01 ~]# docker top 973ff3c…...
vue3 tailwindcss的使用
首先安装依赖: npm install -D tailwindcsslatest postcsslatest autoprefixerlatestnpm i -D unocss 然后vite.config.ts中 引入 import Unocss from unocss/viteexport default defineConfig({plugins: [Unocss(),],})终端执行: npx tailwindcss in…...
redis 基础篇(redis 理解)
目录 redis 特性介绍 redis 的一些特性(优点) 1. 在内存中存储数据 2. 可编程的 3. 可扩展 4. 持久化 5. 支持集群 6. 高可用 redis 的应用场景 数据库 作缓存 会话存储 作消息队列 redis 不适合做的事情 redis 介绍 redis 客户端形态 命…...
C++系列-函数重载
C系列-函数重载 函数重载函数重载的条件函数重载注意事项引用作为重载函数重载遇到默认参数 函数重载 函数名可以相同, 提高复用性 函数重载的条件 同一个作用域下函数名相同函数参数不同 – 参数个数不同 – 参数顺序不同 – 参数类型不同不可以使用返回值作为重…...
Linux scp命令
scp 是 secure copy 的缩写, scp 是 linux 系统下基于 ssh 登陆进行安全的远程文件拷贝命令。 scp 是加密的,rcp 是不加密的,scp 是 rcp 的加强版。 scp [可选参数] file_source file_target 参数说明: -1: 强制scp命令使用协议ss…...
vue 简单实验 v-bind 变量与html属性绑定
1.代码 <script src"https://unpkg.com/vuenext" rel"external nofollow" ></script> <div id"bind-attribute"><span v-bind:title"message">鼠标悬停几秒钟查看此处动态绑定的提示信息!</sp…...
114.(cesium篇)cesium去掉时间轴并用按钮控制运动
地图之家总目录(订阅之前必须详细了解该博客) 完整代码工程包下载,运行如有问题,可“私信”博主。效果如下所示: cesium去掉时间轴并用按钮控制运动 下面献上完整代码,代码重要位置会做相应解释 <html lang...
2023年清洁能源与智能电网国际会议(CCESG 2023)
会议简介 Brief Introduction 2023年清洁能源与智能电网国际会议(CCESG 2023) 会议时间:2023年 召开地点:中国南宁 大会官网:CCESG 2023-2023 International Joint Conference on Clean Energy and Smart Grid 由IASED主办, CoreS…...
RISC-V中国峰会 | 256核服务器高调亮相,谁与争锋?
8月23日,第三届RISC-V中国峰会(RISC-V Summit China 2023)在北京香格里拉饭店正式开幕,来自世界各地的行业精英汇聚一堂,为RISC-V生态系统建言献策,凝心聚力! 中国工程院院士倪光南、RISC-V国际…...
树套树小结
树状数组套权值线段树,实现过程类似主席树,采用动态开点实现 https://www.luogu.com.cn/problem/P3380 树状数组部分 线段树部分...
android 解决sdk代码冲突
1. 在引用sdk的外面添加排除sdk implementation ("androidx.core:core-ktx:1.9.0"){exclude (group:androidx.appcompat, module:appcompat)} 2. 全局指定对应的sdk版本 configurations.all {resolutionStrategy.eachDependency { DependencyResolveDetails detail…...
C++逆天合集
1.基础知识 1. 创建 编译 运行 touch a.cpp gedit a.cpp g -o a.out a.cpp ./a.out 2. a 等价于a a 1 3. ::运算符 4. 类型转换 赋给无符号类型超出其表达范围时,对总数取模得余数 赋给带符号类型超出其表达范围时,结…...
stm32之15.超声波与灯光功能一起实现(进阶)
主函数代码修改 --------------------- 源码 int main(void) {uint32_t t0;uint32_t distance;NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4);led_init();key_init();/* 初始化串口1波特率为115200bps,若发送/接收数据有乱码,请检查PLL */usart1_ini…...
AOP 代理对象的诞生时刻:Bean 生命周期中的“夺舍”瞬间
各位大佬,欢迎来到 Spring 容器最神秘、最惊心动魄的现场!很多人以为 AOP 是“天生”的, Bean 一出生就带着光环。大错特错!不过是前人在负重前行:Spring 先造出一个“纯净的肉身”(原始对象)&a…...
RevokeMsgPatcher:突破微信消息限制的高效管理工具
RevokeMsgPatcher:突破微信消息限制的高效管理工具 【免费下载链接】RevokeMsgPatcher :trollface: A hex editor for WeChat/QQ/TIM - PC版微信/QQ/TIM防撤回补丁(我已经看到了,撤回也没用了) 项目地址: https://gitcode.com/G…...
云原生实战:如何用GROUP模型提升容器工作负载预测准确率(附避坑指南)
云原生实战:如何用GROUP模型提升容器工作负载预测准确率(附避坑指南) 在云原生架构中,容器资源管理一直是DevOps团队面临的重大挑战。传统单容器预测方法往往忽视了微服务间复杂的协同关系,导致预测误差居高不下。本文…...
OpenClaw自动化办公:nanobot镜像处理Excel与PPT文件
OpenClaw自动化办公:nanobot镜像处理Excel与PPT文件 1. 为什么选择OpenClaw处理办公文档? 上周五下午5点,当我面对第7个需要合并的Excel报表时,手指已经因为重复的复制粘贴动作开始发麻。作为团队里负责月度数据汇总的"表哥…...
17 种 RAG 优化策略
RAG 完整解析 本文适合小白入门,全程用「公司员工手册查病假」为统一实例,清晰讲解 RAG 是什么、工作流程,以及 17 种 RAG 优化策略(含标准英文术语),所有内容可直接复制用于分享,实例均精确到具…...
从LLaVA到Stable Diffusion:多模态融合选拼接还是交叉注意力?一张图帮你做技术选型
多模态融合技术选型指南:拼接与交叉注意力的深度对比与实践策略 在构建现代多模态AI系统时,工程师们常常面临一个关键决策点:如何有效地融合来自不同模态的信息?想象一下,你正在开发一个智能医疗影像分析系统ÿ…...
在 Docker 中,如何实现容器之间的通信?
在 Docker 中,容器之间的通信主要通过 Docker 网络(Docker Networking) 实现。Docker 提供了多种网络驱动和机制,允许容器安全、高效地相互通信。以下是实现容器通信的核心方法和最佳实践:一、核心网络模式 1. Bridge …...
从SuperGlue到LoFTR:无检测器特征匹配是如何“卷”出来的?技术演进深度解读
从SuperGlue到LoFTR:无检测器特征匹配的技术革命与范式迁移 在计算机视觉领域,特征匹配一直是三维重建、SLAM、图像配准等任务的核心基础。传统方法如SIFT、ORB等基于手工设计的特征检测与描述算法,在过去二十年里主导了这一领域。然而&#…...
终极Chrome全页截图指南:一键保存完整网页内容的高效方案
终极Chrome全页截图指南:一键保存完整网页内容的高效方案 【免费下载链接】full-page-screen-capture-chrome-extension One-click full page screen captures in Google Chrome 项目地址: https://gitcode.com/gh_mirrors/fu/full-page-screen-capture-chrome-ex…...
Anthropic调整Claude使用限制以缓解高峰时段需求压力
Anthropic公司周三调整了Claude客户的使用限制策略,在高峰需求时段降低服务功率,以平衡用户需求与其服务交付能力。Anthropic技术团队成员Thariq Shihipar在社交媒体上发布消息称:"为了管理Claude日益增长的需求,我们正在调整…...



