docker小白第五天

docker小白第五天

docker的私有库

有些涉密的信息代码不能放在阿里云的镜像仓库,因此需要构建一个个人内网专属的私有库,将镜像或者容器代码进行推送保存。

下载镜像docker registry

执行代码docker pull registry,用于搭建私服前的准备。
在这里插入图片描述
然后运行私有库registry,相当于本地有个私有的docker hub。

docker run -d -p 5000:5000 -v /cz/myregistry/:/tmp/registry --privileged=true registry

默认情况,仓库被创建在容器的/varlib/lregistry目录下,建议自行用容器卷映射,方便于宿主机联调。其中的5000:5000是端口,-p是指定端口映射。-d是后台守护式新建容器。
在这里插入图片描述

为原始ubuntu镜像增加ifconfig包命令

原始的ubuntu镜像启动一个ubuntu容器后,是无法识别ifconfig命令的,因此需要生成容器后,手动添加ifconfig包,然后生成成镜像副本,在上传到本地私有库中去。

docker pull ubuntu  
下载原始ubuntu镜像
docker run -it --name=myubuntu ubuntu /bin/bash
以交互式启动容器
apt-get update
更新apt管理器
apt-get install net-tools
安装ifconfig命令的包
ifconfig 验证容器是否能识别该命令

在这里插入图片描述
可以看到已经可以识别ifconfig了,刚刚新建的这个容器,他自己的ip是172.17.0.3

docker commit -m="add ifconfig cmd" -a="cz" 1a87279a5cbe myubuntu:1.0
编辑生成镜像的信息,要在容器外执行这个命令

可以看到生成镜像成功,然后docker images查看,已有该镜像。
在这里插入图片描述
在这里插入图片描述

然后利用刚刚生成的镜像新建一个容器,执行`ifconfig`可以看到是已经识别该命令的。

在这里插入图片描述

上传修改后的镜像到本地私服库

先执行代码,看看刚刚运行起来的私服库registry是否曾经上传过镜像

curl -XGET http://192.168.5.3:5000/v2/_catalog
查看镜像推送日志,ip输的是容器的宿主机ip,端口是刚刚创建容器时指定的5000。

可以看到没有历史上传记录
在这里插入图片描述

docker tag myubuntu:1.0 192.168.5.3:5000/myubuntu:1.0
打包刚刚生成的镜像,准备提交本地私有仓库

在执行docker images可以看到刚刚打包好的镜像
在这里插入图片描述

cat /etc/docker/daemon.json
vim /etc/docker/daemon.json
需要在这个json文件里边取消docker默认不允许http方式推送镜像的限制

vim进入这个文件后,先加个“,”号,然后输入如下命令,其中ip需要替换为自己宿主机的ip。如果修改完成后,仍然不生效,可以尝试重启docker。

"insecure-registries":["192.168.5.3:5000"]

在这里插入图片描述
然后执行systemctl restart docker重启docker。然后重运行下私服仓库docker run -d -p 5000:5000 -v /cz/myregistry/:/tmp/registry --privileged=true registry

docker push 192.168.5.3:5000/myubuntu:1.0
用docker images查看后,推送刚刚打包的镜像

在这里插入图片描述

查看私服库上刚刚推送的镜像记录
curl -XGET http://192.168.5.3:5000/v2/_catalog

在这里插入图片描述
然后删除刚刚打包和生成的镜像,重新去私服库上pull下来,运行,看看是否能正常识别ifconfig命令。

docker rmi -f 镜像id
强制删除某个镜像
docker pull 192.168.5.3:5000/myubuntu:1.0
从私服库下载刚刚上传过的镜像
docker images
查看是否已经下载成功
docker run -it 025303e926d7 /bin/bash
重新运行这个容器
ifconfig
测试该命令

可以看到已经成功。
在这里插入图片描述

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

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

相关文章

微信小程序---使用npm包安装Vant组件库

在小程序项目中,安装Vant 组件库主要分为如下3步: 注意:如果你的文件中不存在pakage.json,请初始化一下包管理器 npm init -y 1.通过 npm 安装(建议指定版本为1.3.3) 通过npm npm i vant/weapp1.3.3 -S --production 通过y…

EasyExcel 简单导入

前边写过使用easyexcel进行简单、多sheet页的导出。今天周日利用空闲写一下对应简单的导入。 重点:springboot、easyExcel、桥接模式; 说明:本次使用实体类student:属性看前边章节内容; 1、公共导入service public …

gitee提交代码步骤介绍(含git环境搭建)

1、gitee官网地址 https://gitee.com; 2、Windows中安装git环境 参考博客:《Windows中安装Git软件和TortoiseGit软件》; 3、设置用户名和密码 这里的用户名和密码就是登录gitee网站的用户名和密码如果设置错误,可以在Windows系统的“凭据管理…

C#面试题

目录 基本概念 装箱和拆箱 1、装箱拆箱的“箱”是什么,“箱”存放在哪里? 2、装箱快还是拆箱快? 3、装箱和拆箱有什么性能影响? 值类型和引用类型分别是哪些 访问权限修饰符 委托(delegate) 什么是委托链 委托链用途 事件…

【C语言】实战项目——通讯录

引言 学会创建一个通讯录,对过往知识进行加深和巩固。 文章很长,要耐心学完哦! ✨ 猪巴戒:个人主页✨ 所属专栏:《C语言进阶》 🎈跟着猪巴戒,一起学习C语言🎈 目录 引言 实战 建…

VLAN间的通讯---三层交换

一.三层交换 1.概念 使用三层交换技术实现VLAN间通信 三层交换二层交换 三层转发 2.基于CEF的MLS CEF是一种基于拓补转发的模型 转发信息库(FIB)临接关系表 转发信息库(FIB)可以理解为路由表 邻接关系表可以理解为MAC地址表…

Linux驱动(中断、异步通知):红外对射,并在Qt StatusBus使用指示灯进行显示

本文工作: 1、Linux驱动与应用程序编写:使用了设备树、中断、异步通知知识点,实现了红外对射状态的异步信息提醒。 2、QT程序编写:自定义了一个“文本指示灯”类,并放置在QMainWidget的StatusBus中。 3、C与C混合编程与…

【华为数据之道学习笔记】5-4 数据入湖方式

数据入湖遵循华为信息架构,以逻辑数据实体为粒度入湖,逻辑数据实体在首次入湖时应该考虑信息的完整性。原则上,一个逻辑数据实体的所有属性应该一次性进湖,避免一个逻辑实体多次入湖,增加入湖工作量。 数据入湖的方式…

Android Studio好用的插件推荐

目录 一、插件推荐 二、如何下载 1.点击File—>Settings ​2.点击Plugins然后进行搜索下载 三、Android Studio 模板 一、插件推荐 这个插件可以为您自动生成Parcelable代码。Parcelable是一种用于在Android组件之间传递自定义对象的机制,但手动编写Parcela…

RabbitMQ搭建集群环境、配置镜像集群、负载均衡

RabbitMQ集群搭建 Linux安装RabbitMQ下载安装基本操作命令开启管理界面及配置 RabbitMQ集群搭建确定rabbitmq安装目录启动第一个节点启动第二个节点停止命令创建集群查看集群集群管理 RabbitMQ镜像集群配置启用HA策略创建一个镜像队列测试镜像队列 负载均衡-HAProxy安装HAProxy…

从计算机底层深入Golang高并发

从计算机底层深入Golang高并发 1.源码流程架构图 2.源码解读 runtime/proc.go下的newpro() func newproc(fn *funcval) {//计算额外参数的地址argpgp : getg()pc : getcallerpc()//s1使用systemstack调用newproc1 systemstack(func() {newg : newproc1(fn, gp, pc)_p_ : getg…

代码随想录二刷 | 二叉树 | 112. 路径总和

代码随想录二刷 | 二叉树 | 112. 路径总和 题目描述解题思路递归迭代 代码实现递归迭代 题目描述 112.路径总和 给你二叉树的根节点 root 和一个表示目标和的整数 targetSum 。判断该树中是否存在 根节点到叶子节点 的路径,这条路径上所有节…

leetcode-138-随机链表的复制(Java实现)

题目: 给你一个长度为 n 的链表,每个节点包含一个额外增加的随机指针 random ,该指针可以指向链表中的任何节点或空节点。 构造这个链表的 深拷贝。 深拷贝应该正好由 n 个 全新 节点组成,其中每个新节点的值都设为其对应的原节点…

【LeetCode刷题】-- 166.分数到小数

166.分数到小数 class Solution {public String fractionToDecimal(int numerator, int denominator) {StringBuilder sb new StringBuilder();HashMap<Long,Integer> map new HashMap<>();//为了防止溢出&#xff0c;将分子和分母都转成64位整数long a numerat…

女生想通过培训转行软件测试类可行吗?

首先&#xff0c;女生转行IT行业做软件测试是可以的&#xff0c;因为软件测试岗&#xff0c;尤其是其中的功能性测试岗&#xff0c;入行门槛并不高&#xff0c;有很多女生在做&#xff0c;且我个人认为还蛮适合女生的&#xff0c;因为女生相对来说更细心&#xff0c;文档能力也…

HashMap构造函数解析与应用场景

目录 1. HashMap简介 2. HashMap的构造函数 2.1 默认构造函数 2.2 指定初始容量和加载因子的构造函数 3. 构造函数参数的影响 3.1 初始容量的选择 3.2 加载因子的选择 4. 构造函数的应用场景 4.1 默认构造函数的应用场景 4.2 指定初始容量和加载因子的构造函数的应用…

Linux(23):Linux 核心编译与管理

编译前的任务&#xff1a;认识核心与取得核心原始码 Linux 其实指的是核心。这个【核心(kernel)】是整个操作系统的最底层&#xff0c;他负责了整个硬件的驱动&#xff0c;以及提供各种系统所需的核心功能&#xff0c;包括防火墙机制、是否支持 LVM 或 Quota 等文件系统等等&a…

FFmpeg的AVcodecParser

文章目录 结构体操作函数支持的AVCodecParser 这个模块是AVCodec中的子模块&#xff0c;专门用来提前解析码流的元数据&#xff0c;为后面的解码做准备&#xff0c;这一点对cuda-NVdec非常明显&#xff0c;英伟达解码器的元数据解析是放在CPU上的&#xff0c;所以就非常依赖这个…

预测性维护对制造企业设备管理的作用

制造企业设备管理和维护对于生产效率和成本控制至关重要。然而&#xff0c;传统的维护方法往往无法准确预测设备故障&#xff0c;导致生产中断和高额维修费用。为了应对这一挑战&#xff0c;越来越多的制造企业开始采用预测性维护技术。 预测性维护是通过传感器数据、机器学习和…

jmeter,取“临时重定向的登录接口”响应头中的cookie

1、线程组--创建线程组&#xff1b; 2、线程组--添加--取样器--HTTP请求&#xff1b; 3、Http请求--添加--后置处理器--正则表达式提取器&#xff1b; 4、线程组--添加--监听器--查看结果树&#xff1b; 5、线程组--添加--取样器--调试取样器。 首先理解 自动重定向 与跟随…