基于docker搭建owncloud Harbor 构建镜像

环境介绍:ContenOS7.9   docker17.12.1-ce

使用mysql:5.6和 owncloud 镜像,构建一个个人网盘。

docker pull owncloud    #拉取镜像
docker pull mysql5.6

创建容器

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 

 

 

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

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

相关文章

Const的区别 学习笔记

C程序设计之const八大用法_哔哩哔哩_bilibili const优先修饰const左边&#xff0c;若左边没有东西&#xff0c;则修饰右边的东西 前两个a,b不是指针由于修饰的是int&#xff0c;是类型&#xff0c;所以a和b的值不能改变 c的类型的指针&#xff0c;const修饰的是int&#xff0…

Azure创建可用性集

什么是可用性集 在Azure中&#xff0c;可用性集&#xff08;Availability Set&#xff09;是一种用于提高虚拟机&#xff08;VM&#xff09;可用性和可靠性的功能。它通过将虚拟机分布在不同的物理硬件和故障域中来提供高可用性。每个故障域都是一个独立的电力和网络故障区域&…

数据同步后数据总条数对不上的问题解决

文章目录 [toc] 1.问题2.解决办法2.1&#xff09;设置合理的线程池参数2.2&#xff09;设置url连接参数2.3) 优化msql的系统参数2.4&#xff09;使用CountDownLatch减法计数器和数据插入的公共方法新开一个事务2.5&#xff09;sql批量注入器执行成功后&#xff0c;当前线程slee…

C++11 智能指针

文章目录 什么是智能指针为什么用智能指针智能指针的类型和各自的功能auto_ptr&#xff08;c98使用的&#xff0c;现已废弃&#xff09;unique_ptrshared_ptrweak_ptr unique_ptr和shared_ptr的简单模拟实现 什么是智能指针 智能指针是一种在编程中用于管理动态分配内存的指针…

DC电源模块如何调节电源输出电压和电流

BOSHIDA DC电源模块如何调节电源输出电压和电流 DC电源模块是一种电源转换器&#xff0c;在电子设备中广泛使用。它可以将交流电转换为直流电&#xff0c;或者将低电压直流电转换为高电压直流电。 DC电源模块通常可以调节输出电压和电流&#xff0c;以满足各种电子设备的不同需…

【C++】 使用红黑树模拟实现STL中的map与set

文章目录 前言1. 对之前实现的红黑树进行一些补充和完善1.1 析构1.2 查找 2. STL源码中map和set的实现3. 改造红黑树封装map和set3.1 红黑树结构修改3.2 map、set的结构定义3.3 insert的封装3.4 insert测试3.5 发现问题并解决3.6 红黑树迭代器实现3.7 封装set和map的迭代器并测…

RK3399平台开发系列讲解(内核调试篇)Valgrind使用案例

🚀返回专栏总目录 文章目录 一、使用未初始化的内存案例二、内存泄露三、在内存被释放后进行读/写案例四、从已分配内存块的尾部进行读/写案例五、两次释放内存案例沉淀、分享、成长,让自己和他人都能有所收获!😄 📢Valgrind 是一个开源的内存调试和性能分析工具,用于…

Electron 报gpu_process_host.cc(951)] GPU process launch faile错误

解决方法&#xff0c;在入口js文件中&#xff0c;添加如下代码: app.commandLine.appendSwitch(no-sandbox)

Eltima USB Network Gate 10.0 Crack

USB Network Gate -通过网络共享USB 设备 USB Network Gate (前身为以太网USB控制器USB) 轻松的通过网络(Internet/LAN/WAN)分享您的一个或者多个连接到您计算机的USB设备。 无论您身处异国还是近在隔壁办公室&#xff0c;您都可以轻松使用远程扫描仪、打印机、摄像头、调制解…

CVE-2015-5254漏洞复现

1.漏洞介绍。 Apache ActiveMQ 是美国阿帕奇&#xff08;Apache&#xff09;软件基金会所研发的一套开源的消息中间件&#xff0c;它支持 Java 消息服务&#xff0c;集群&#xff0c;Spring Framework 等。Apache ActiveMQ 5.13.0之前 5.x 版本中存在安全漏洞&#xff0c;该漏…

《HeadFirst设计模式(第二版)》第十一章代码——代理模式

代码文件目录&#xff1a; RMI&#xff1a; MyRemote package Chapter11_ProxyPattern.RMI;import java.rmi.Remote; import java.rmi.RemoteException;public interface MyRemote extends Remote {public String sayHello() throws RemoteException; }MyRemoteClient packa…

SpringBoot基于Zookeeper实现分布式锁

文章目录 问题背景前言实现搭建Zookeeper容器引入依赖ZK客户端的配置类ZK客户端的工厂类注入bean构建测试类 问题背景 研究分布式锁&#xff0c;基于ZK实现&#xff0c;需要整合到SpringBoot使用 前言 参考自SpringBoot集成Curator实现Zookeeper基本操作&#xff0c;Zookeeper入…

ssm+vue校园美食交流系统源码

ssmvue校园美食交流系统源码和论文026 开发工具&#xff1a;idea 数据库mysql5.7 数据库链接工具&#xff1a;navcat,小海豚等 技术&#xff1a;ssm 摘 要 随着现在网络的快速发展&#xff0c;网上管理系统也逐渐快速发展起来&#xff0c;网上管理模式很快融入到了许多商…

el-table 实现动态表头 静态内容 根据数据显示动态输入框

直接放代码了 <el-table:data"form.tableDataA"borderstripestyle"width: 100%; margin-top: 20px"><el-table-columnv-for"(category, categoryIndex) in form.tableDataA":key"categoryIndex":label"category.name&qu…

Java虚拟机(JVM):垃圾收集算法

目录 一、分代收集理论 二、标记-清除算法 三、标记-复制算法 四、标记-整理算法 一、分代收集理论 分代收集理论建立在两个分代假说之上&#xff1a; 1、弱分代假说&#xff1a;绝大多数对象都是朝生夕灭的。 2、强分代假说&#xff1a;熬过越多次垃圾收集过程的对象就…

5.8.webrtc事件处理基础知识

在之前的课程中呢&#xff0c;我向你介绍了大量web rtc线程相关内容&#xff0c;今天呢&#xff0c;我们来看一下线程事件处理的基本知识。首先&#xff0c;我们要清楚啊&#xff0c;不同的平台处理事件的API是不一样的&#xff0c;这就如同我们当时创建线程是类似的&#xff0…

K8s实战4-使用Helm在Azure上部署Ingress-Nginx和Tokengateway

手动发布Ingress-Nginx 1 登录到aks(dfinder-gw-aks) az login az account set --subscription ${sub ID} az aks get-credentials --resource-group ${groupname} --name ${aks name} 2 下载 ingress-nginx-4.2.5.tgz curl -LO https://github.com/kubernetes/ingress-ngi…

“开发和运维”只是一个开始,最终目标是构建高质量的软件工程

随着技术的飞速发展&#xff0c;软件行业不断寻求改进和创新的方法来提供更高质量的产品。在这方面&#xff0c;DevOps已经展现出了巨大的潜力。通过打破开发和运维之间的壁垒&#xff0c;DevOps将持续集成、持续交付和自动化流程引入到软件开发中&#xff0c;使团队能够更快地…

数字孪生助力智慧水务:科技创新赋能水资源保护

智慧水务中&#xff0c;数字孪生有着深远的作用&#xff0c;正引领着水资源管理和环境保护的创新变革。随着城市化和工业化的不断推进&#xff0c;水资源的可持续利用和管理愈发显得重要&#xff0c;而数字孪生技术为解决这一挑战提供了独特的解决方案。 数字孪生技术&#xf…

Docker容器无法启动 Cannot find /usr/local/tomcat/bin/setclasspath.sh

报错信息如下 解决办法 权限不够 加上--privileged 获取最大权限 docker run --privileged --name lenglianerqi -p 9266:8080 -v /opt/docker/lenglianerqi/webapps:/usr/local/tomcat/webapps/ -v /opt/docker/lenglianerqi/webapps/userfile:/usr/local/tomcat/webapps/u…