第三章:Docker搭建私服-本地镜像库

Docker:第七章:Docker搭建私服-本地镜像库 阿里伤透我心,疯狂复习刷题,终于喜提offer 哈哈~好啦,不闲扯了1、JAVA面试核心知识整理(PDF):包含JVMJAVA集合JAVA多线程并发,JAVA基础,Spring原理微服务,Netty与RPC,网络,日志,ZookeeperKafkaRabbitMQ,Hbase,MongoDB设计模式负载均衡数据库一致性哈希JAVA算法数据结构,加密算法,分布式缓存,Hadoop,Spark,Storm,YARN,机器学习,云计算共30个章节。2、Redis学习笔记及学习思维脑图。 阅读详情

搭建场景:

项目场景:首先需要二台机器,一个是客户端,用来部署项目运行的机器;一个是私服,用来部署本地镜像仓库的,这二台机器都要安装配置好docker。

机器配置:

这里我买了一台阿里云的G5服务器作为私服,配置如下: 2核心8G内存80G云盘1M宽带 用来专门搭建gitlab,jenkins,以及docker私服绰绰有余
另外一台客户端也是阿里云的轻量应用服务器,配置如下: 1核心2G内存40G云盘1M宽带 用来部署测试项目

搭建流程:

二台机器都更换镜像源(因为默认的太慢了,国内的更快,网易的)

sudo vim /etc/default/docker

输入以下参数:

DOCKER_OPTS="--registry-mirror=http://hub-mirror.c.163.com" 

在阿里云G5私服上拉取仓库

docker pull registry 

然后查看镜像

sudo docker images

启动该容器

创建目录,这里以/opt/data/registry为宿主机存储的目录

mkdir -p /opt/data/registry

运行镜像,配置端口以及将容器内的数据映射挂载在自己指定的目录上

docker run -d -v /opt/data/registry:/var/lib/registry -p 5000:5000 --restart=always --privileged=true --name private_registry registry:latest

参数说明:

-d : 让容器可以后台运行
-itd:在容器中打开一个伪终端进行交互操作,并在后台运行;
-v:把宿主机的opt/data/registry目录绑定 到 容器/var/lib/registry目录(这个目录是registry容器中存放镜像文件的目录),来实现数据的持久化;
-p:映射端口;访问宿主机的5000端口就访问到registry容器的服务了(前者是宿主机的端口号,后者是容器的端口号);
–restart=always:这是重启的策略,假如这个容器异常退出会自动重启容器;
–name private_registry:创建容器命名为private_registry,你可以随便命名;
registry:latest:这个是刚才pull下来的镜像;
如果成功执行,则表示我们的docker私有仓库搭建成功。
下面对这条命令的部分内容做下说明。
/registry表示宿主机目录,该目录如果不存在会自动创建。
docker -v 宿主机目录:容器目录

查看是否启动成功

sudo docker ps

这个时候镜像运行成功说明本地的镜像仓库就已经弄好了,是不是很快,别急,还要把自个的项目弄到本地镜像仓库上面去,到时候就可以直接通过命令拉取本地镜像仓库运行项目了,下面我以tomcat作为我们实际运行的项目为例。

在客户端制作tomcat镜像

 docker pull tomcat

这个时候,如果已经成功拉取tomcat之后,后面需要把我们客户端的tomcat推送到我们的私服上面去,到时候我们就可以直接通过私服拉取,而不是官方的docker hub,官方的私库需要自己去注册账号并且登录上去做操作,我们这里主要讲本地镜像仓库。那有同学可能会问了,服务器掉一个东西,肯定是需要登录或者给个什么密钥才能允许操作的呀,这就是后面我们要配置的东西了,docker私有仓库服务器,默认是基于https传输的,所以我们需要在客户端做相关设置,不使用https传输。

修改/etc/docker/daemon.json文件

vi /etc/docker/daemon.json

将私服的ip替换进去

{
        "registry-mirrors": ["https://njrds9qc.mirror.aliyuncs.com"],
        "insecure-registries":["你私服本地镜像仓库的ip:5000"]
}

重置配置

systemctl daemon-reload

重启docker

systemctl restart docker

制作属于自个的tomcat镜像

查看tomcat镜像id

docker images

在这里插入图片描述

开始制作:docker tag tomcat镜像id 私服本地镜像仓库的ip:5000/tomcat

#我的镜像id是b0e0b0a92cf9,ip我就不暴露了
docker tag b0e0b0a92cf9 私服ip:5000/tomcat

推送到私服本地镜像仓库上

docker push 私服ip:5000/tomcat

客户端(轻量)和服务器(G5)上分别执行curl -X GET http://私服ip:5000/v2/_catalog,查看私有仓库的镜像信息,都能见到相同的信息

curl -X GET http://私服ip:5000/v2/_catalog

{“repositories”:[“tomcat”]}

验证

在轻量服务器上删除tomcat镜像

docker rmi 私服ip:5000/tomcat tomcat

创建一个容器,映射8080端口

docker run --name tomcat001 -p 8080:8080 -idt 私服ip:5000/tomcat

使用轻量服务器的ip加端口访问8080,正常可以是不是会出现以下的页面

在这里插入图片描述由于我们是一个新的服务器,所以出现了linux中docker安装tomcat,linux中tomcat访问404问题的情况

通过日志排查

dockerlogs -f mytomcat --tail=500

通过端口排查

docker port tomcat

进入docker运行的tomcat目录中

docker exec -it tomcat运行的id /bin/bash

通过命令

 ls -l

发现有一个webapps目录和webapps.dist目录
进入webapps目录并ls -l发现为空
进入webapps.dist目录发现root文件夹
接下来,删除webapps目录,更改webapps.dist目录名为webapps

rm -rf webapps
mv webapps.dist webapps

发现还是404,后面想起还有jdk没有安装

docker pull jdk

在这里插入图片描述出现:Error response from daemon: pull access denied for jdk, repository does not exist or may require ‘docker login’: denied: requested access to the resource is denied
需要登录docker,这个其实也不用管了,因为已经出现tomcat欢迎页面了。
当然也可以继续登录进行,命令如下:

docker login

[root@ip ~]# docker login Login with your Docker ID to push and pull
images from Docker Hub. If you don’t have a Docker ID, head over to
https://hub.docker.com to create one. Username: 你docker登录名 Password:
你docker登录密码 WARNING! Your password will be stored unencrypted in
/root/.docker/config.json. Configure a credential helper to remove
this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store
Login Succeeded


总结:

博文介绍了Docker搭建私服-本地镜像库的具体实现,以tomcat为例演示,帮助大家快速理解上手。

使用docker搭建maven私服 本文主要介绍,使用Docker创建一个nexus私服,然后编写一个maven demo项目,上传到私服,然后使用demo工程依赖。 阅读详情

相关推荐

Nexus3中搭建Docker私服

Nexus3中搭建Docker私服,打造私有Docker仓库

yuanjinshenglife的专栏 2021

Docker私服

Docker 官方的Docker Hub是一个用于管理公共镜像的仓库,我们可以从上面拉取镜像到本地,也可以把我们自己的镜像推送上去。但是,如果我们的服务器无法访问互联网,或者需要使用自己的自己私有镜像,此时我们就需要搭建自己的私有仓库,来存储和管理自己的镜像。官方私服企业私服一般我们个人用不到这个,而在企业应用中官方显得不是很友好,没有界面,所以一般都是使用的企业私服。

Edwin_Hu的博客 1437

Docker 私服搭建使用实战

官方指引 1.搭建私服 # 下载私服镜像 docker pull registry # 启动私服镜像,设置创建后的私服容器随着docker启动而自启 docker run -d --name registry -p 5000:5000 --restart always registry 演示图如下:搭建后,即可通过浏览器访问私服,默认为空: 2.上传镜像到私服 将私服连接加入到docker的...

qq_36406189的博客 1469

docker私服搭建

docker镜像

恨_别离的博客 1651

基于Docker搭建Maven私服仓库

Maven支持二进制,容器,helm cart、operator等方式安装运行。本文记录使用docker在内网搭建maven私服仓库。

lldhsds的专栏 1876

docker - 搭建 maven 私服

文章目录docker - 搭建 maven 私服1、拉下镜像2、跑起来3、读取默认密码4、登陆5、管理 docker - 搭建 maven 私服 1、拉下镜像 docker pull sonatype/nexus3:3.26.1 2、跑起来 docker run \ --name maven \ --hostname=maven \ --restart=always \ -d \ -v /maven/repo:/var/nexus-data \ -p 55535:8081 \

简简单单Onlinezuozuo 2625

一起学docker系列之六如何搭建私服版本的Docker镜像仓库

Docker镜像是一种轻量级的、可移植的、自包含的软件包,包含了应用程序的代码、依赖、环境和配置。Docker镜像可以从公共的或者私有的仓库中拉取,也可以推送到仓库中供他人使用。 在本文中,我们将介绍如何搭建一个私服版本的Docker镜像仓库,以及如何使用它来存储和分发自定义的Docker镜像。私服版本的Docker镜像仓库是指只能在内网中访问的仓库,通常用于存储公司内部开发的或者修改过的镜像,以保证安全性和隐私性。

cooldream2009的博客 1728

第2章 数据库关系模型-单元测验-数据库原理及应用

第2章 数据库关系模型---数据库与机器学习 作业 常用的关系查询操作包括选择、投影、连接、并、交等。 v 实体完整性是指关系表的属性组成必须是完整的。 x 自然连接是一种等值连接。 v 在参照完整性中,可以定义级联操作。 v 用户自定义完整性可以实施数据的业务约束。 v 每个关系是一个二维表,但二维表不一定是关系。 v 关系中复合键至少包含两个属性。 v 代理键是为了唯一标识关系的不同元组,需要在表单或报表中显示出来。 x ...

aiqq136的博客 5727

群晖NAS搭建Docker私服

公服:dockerhub等(优点:什么都有。缺点:慢,不私有。) 私服:解决公服的缺点。 本文以群晖NAS搭建为例(熟悉Docker的,看了本文,不是群晖也一样操作) 准备说明 1、私服镜像地址(https://hub.docker.com/_/registry) 2、私服映射端口(宿主机4000映射registry容器的5000) 3、私服镜像文件保存位置映射(宿主机目录docker/docke...

小单的博客专栏 2万+

Zipformer实战:5分钟快速搭建语音识别模型(附LibriSpeech测试结果)

本文提供了一份详细的Zipformer语音识别模型实战指南。通过清晰的步骤,指导读者在5分钟内完成从环境配置、LibriSpeech数据集准备到模型训练与测试的全过程。文章重点解析了关键配置参数,并分享了在LibriSpeech测试集上的性能结果,帮助开发者快速评估和应用这一高效的语音识别架构。

weixin_35578748的博客 164

从D触发器到8位SAR ADC:Cadence Virtuoso完整设计仿真指南

逐次逼近寄存器型模数转换器(SAR ADC)是混合信号集成电路中的基础架构,其核心是一个由D触发器构成的时序状态机。在数字电路设计中,D触发器常用于数据锁存、移位寄存和时钟分频,而在SAR ADC中,它恰好承担了节拍发生与结果寄存的双重角色。理解D触发器的工作机制,是掌握逐次逼近逻辑的关键前提。工程实践中,借助Cadence Virtuoso平台,可以从门级搭建SAR逻辑,并结合动态比较器与电荷重分配电容DAC,完成从原理图到瞬态仿真的全流程验证。通过FFT分析计算SNDR与ENOB,能够量化评估ADC的动

weixin_29178069的博客 285

docker学习(三):docker镜像分层原理及本地镜像推送到阿里云或私服

大家好,这是我学习docker系列的笔记文章,本文记录了docker镜像分层加载的原理,及如何把本地镜像推送到阿里云服务器或者本地私服 ,感兴趣的朋友可以看一下以前的文章。

java后端开发的博客,不仅仅是后端开发 4072

运算放大器多谐振荡器设计实战:从施密特触发器到波形生成

本文详细介绍了运算放大器在多谐振荡器设计中的实战应用,涵盖施密特触发器的迟滞比较原理、非稳态振荡器的自激机制以及单稳态和双稳态电路的设计技巧。通过具体案例和参数计算,帮助工程师掌握波形生成与信号处理的核心技术,提升电路设计效率与稳定性。

pz89012345的博客 217

Docker私服Registry搭建

Docker私服Registry搭建 搭建过程主要有: 创建私服镜像Registry关联本地磁盘和Registry container启动Registry container 创建私服镜像 docker build -t centos-registry https://git.oschina.net/feedao/Docker_shell/raw/start/Dockerfil

某先生的专栏 1万+

BIDS数据存储格式介绍与dcm2bids安装与使用

BIDS格式&dcm2bids安装与使用

machinelearning_er的博客 7320

Codex入门00-初识神器(小白入门:到底什么是Codex CLI,和ChatGPT写代码有什么不同?)

OpenAI Codex CLI 是 OpenAI 于2025年推出的终端原生AI编程代理,不是在网页里聊天写代码,而是直接在你的终端里自主读代码、改文件、跑命令。它拥有三种安全模式、/goal 持久化任务、云端沙箱执行等独特能力。本文从零介绍 Codex CLI 的核心概念、与 ChatGPT 写代码的本质区别、典型使用场景和费用说明,让你全面认识这个改变开发方式的神器。

yueyeguzhuo的专栏 302

【玩转Docker容器 4】基于Docker搭建Docker私服,以及如何使用Docker私服详解

1.Nexus是什么 Nexus是一个强大的Maven仓库管理器,它极大地简化了自己内部仓库的维护和外部仓库的访问。利用Nexus你可以只在一个地方就能够完全控制访问 和部署在你所维护仓库中的每个Artifact。我们可以在局域网搭建一个maven私服,用来部署第三方公共构件或者作为远程仓库在该局域网的一个代理。 2.Nexus和Maven私服原理 解释:Nexus就是Maven的私服仓库,一般大...

小杰爱吃蛋的博客 4155

【51单片机实物】基于51单片机设计的简易直流电机调测速系统(可用在普中开发板)

功能任务描述:将设置的转速与当前测量的转速比较,得出差值用于控制DAC0832的输出电压,从而控制直流电机的转速,使转速逐渐达到设置转速。在LED上显示设置转速(左2位LED)和当前转速(右2位LED),转速显示采用十进制。控制过程中,当前转速显示不断变化。*直流电机转速范围0-96r/s,误差±1r/s

嵌入式阿齐Archie 1万+

docker部署之私服管理

一、简介  docker私服是存放镜像的本地仓库,类似于docker hub。不过私服是本地的仓库,方便自己公司部署管理由微服务打包成的docker镜像。  话不多说,通过一个例子,教你快速搭建docker私服。 二、registry搭建 docker搭建 如果没有安装虚拟机,可以参考文章《VMware安装Centos7并联网使用》 docker安装参考文章《还不会安装docker?这里帮你搞定》 启动docker $ systemctl start docker 拉取registry镜像 $ d

一半的博客 3423

14 Prompt 的边界:什么时候必须用 RAG 或微调

Prompt 不是万能解法。本文用“改输入、补知识、改模型”这条主线,讲清什么时候继续优化 Prompt,什么时候必须引入 RAG、工具调用或微调,帮助你避免用重技术掩盖轻问题。

老于的笔记的专栏 210

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

【玩转Docker容器 5】基于Docker搭建Maven私服,以及项目如何使用Maven私服详解

1.Nexus是什么 Nexus是一个强大的Maven仓库管理器,它极大地简化了自己内部仓库的维护和外部仓库的访问。利用Nexus你可以只在一个地方就能够完全控制访问 和部署在你所维护仓库中的每个Artifact。我们可以在局域网搭建一个maven私服,用来部署第三方公共构件或者作为远程仓库在该局域网的一个代理。 2.Nexus和Maven私服原理 解释:Nexus就是Maven的私服仓库,一般大...

小杰爱吃蛋的博客 4698

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

上一篇: 为什么Java开发人员在简历上不敢轻易写精通Java
下一篇: 我的社区成立了
Java程序员廖志伟
Java程序员廖志伟 优质创作者: Java技术领域 优质创作者: Java技术领域 领域专家: 后端开发技术领域 领域专家: 后端开发技术领域
博客等级 码龄8年 2万+粉丝 1902原创
评论 24
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Java程序员廖志伟

赏我包辣条呗

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值