基于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…...
day52 ResNet18 CBAM
在深度学习的旅程中,我们不断探索如何提升模型的性能。今天,我将分享我在 ResNet18 模型中插入 CBAM(Convolutional Block Attention Module)模块,并采用分阶段微调策略的实践过程。通过这个过程,我不仅提升…...
页面渲染流程与性能优化
页面渲染流程与性能优化详解(完整版) 一、现代浏览器渲染流程(详细说明) 1. 构建DOM树 浏览器接收到HTML文档后,会逐步解析并构建DOM(Document Object Model)树。具体过程如下: (…...
Springcloud:Eureka 高可用集群搭建实战(服务注册与发现的底层原理与避坑指南)
引言:为什么 Eureka 依然是存量系统的核心? 尽管 Nacos 等新注册中心崛起,但金融、电力等保守行业仍有大量系统运行在 Eureka 上。理解其高可用设计与自我保护机制,是保障分布式系统稳定的必修课。本文将手把手带你搭建生产级 Eur…...
DBAPI如何优雅的获取单条数据
API如何优雅的获取单条数据 案例一 对于查询类API,查询的是单条数据,比如根据主键ID查询用户信息,sql如下: select id, name, age from user where id #{id}API默认返回的数据格式是多条的,如下: {&qu…...
GitHub 趋势日报 (2025年06月08日)
📊 由 TrendForge 系统生成 | 🌐 https://trendforge.devlive.org/ 🌐 本日报中的项目描述已自动翻译为中文 📈 今日获星趋势图 今日获星趋势图 884 cognee 566 dify 414 HumanSystemOptimization 414 omni-tools 321 note-gen …...
前端开发面试题总结-JavaScript篇(一)
文章目录 JavaScript高频问答一、作用域与闭包1.什么是闭包(Closure)?闭包有什么应用场景和潜在问题?2.解释 JavaScript 的作用域链(Scope Chain) 二、原型与继承3.原型链是什么?如何实现继承&a…...
selenium学习实战【Python爬虫】
selenium学习实战【Python爬虫】 文章目录 selenium学习实战【Python爬虫】一、声明二、学习目标三、安装依赖3.1 安装selenium库3.2 安装浏览器驱动3.2.1 查看Edge版本3.2.2 驱动安装 四、代码讲解4.1 配置浏览器4.2 加载更多4.3 寻找内容4.4 完整代码 五、报告文件爬取5.1 提…...
Spring数据访问模块设计
前面我们已经完成了IoC和web模块的设计,聪明的码友立马就知道了,该到数据访问模块了,要不就这俩玩个6啊,查库势在必行,至此,它来了。 一、核心设计理念 1、痛点在哪 应用离不开数据(数据库、No…...
GC1808高性能24位立体声音频ADC芯片解析
1. 芯片概述 GC1808是一款24位立体声音频模数转换器(ADC),支持8kHz~96kHz采样率,集成Δ-Σ调制器、数字抗混叠滤波器和高通滤波器,适用于高保真音频采集场景。 2. 核心特性 高精度:24位分辨率,…...
GraphQL 实战篇:Apollo Client 配置与缓存
GraphQL 实战篇:Apollo Client 配置与缓存 上一篇:GraphQL 入门篇:基础查询语法 依旧和上一篇的笔记一样,主实操,没啥过多的细节讲解,代码具体在: https://github.com/GoldenaArcher/graphql…...



