当前位置: 首页 > news >正文

docker在基础镜像上,比如rockylinux,如何配置yum仓库

在基础镜像rockylinux上

启动的容器,没有yum仓库,就执行不了一些命令

~]docker run  -itd  --name  linux  rockylinux:8.5~]# docker exec  -it  linux   bash
/]# ifconfig
bash: ifconfig: command not found/]# vim
bash: vim: command not found
/]# ip a s
bash: ip: command not found

这样的容器,几乎做不了什么。

那么如何给这个容器配置yum仓库呢

重点是用docker  cp命令

#  在宿主机上操作
~]# docker exec  -it  linux  rm  -rf  /etc/yum.repos.d     # 删除容器内yum仓库目录
~]# docker cp  /etc/yum.repos.d  linux:/etc/    # 将宿主机的yum仓库目录拷贝到容器内
~]# docker exec  -it  linux  yum  -y  install  net-tools  vim-enhanced  tree  bash-completion  iproute  procps-ng psmisc   # 可以装包

docker  cp 命令除了给容器做yum仓库

还主要用来抢救容器内的数据

因为docker cp命令可以在容器没有启动的时候完成拷贝

先将容器内的文件拷贝到宿主机。

等等容器重建之后,再将文件拷贝至新的容器。

容器内的路径,必须用绝对路径。

宿主机的路径,可以用相对路径。

-----------------------------------------------------------------------------------------

docker 镜像是 docker 容器化技术的核心组件之一,

是只读模板,

主要用来创建容器

镜像中包含了运行应用程序所需的一切,

包括操作系统环境、应用程序代码、依赖库和其他配置文件

------------------------------------------------------------------------------------------

Docker 镜像的特性
只读:一旦创建,Docker 镜像就是一个静态的只读实体。这意味着镜像的内容在创建之后不会被修改,任何对镜像的修改都会生成一个新的镜像层。

分层结构:Docker 镜像是由多个层组成的。每一层代表一次变更操作,比如安装一个软件包或复制文件。这种分层结构使得多个镜像可以共享相同的层,从而节省存储空间。

按内容寻址:每个镜像层都有一个唯一的标识符(通常是一个 SHA-256 哈希值),这个标识符是由层的内容决定的。因此,相同的层在不同的镜像中可以共享,减少了冗余。

轻量级:Docker 镜像设计得非常轻量级。例如,Alpine Linux 镜像大小只有约 4MB,而 Ubuntu 镜像大约有 110MB。这些镜像都是经过裁剪的,去除了不必要的内容。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • armbian23.11改了SSH端口号,但不生效?可尝试禁用 systemd socket activation
  • 基于机器学习的注意力缺陷/多动障碍 (ADHD)(python论文+代码)HYPERAKTIV
  • 面试题(一)
  • 视觉距离与轴距离的转换方法
  • C++标准库容器类——string类
  • 基于 K8S kubernetes 搭建 安装 EFK日志收集平台
  • Mysql InnoDB 存储引擎简介
  • 速盾:高防服务器租用需要注意什么事项
  • Mac 上,终端如何开启 proxy
  • vulnhub-prime1
  • YARN性能优化高频面试题及答案
  • 大表数据如何在OceanBase中进行表分区管理的实践
  • Shiro-550—漏洞分析(CVE-2016-4437)
  • 【笔记】第二节 轧制、热处理和焊接工艺
  • 同一时刻最多有多少会议进行
  • GraphQL学习过程应该是这样的
  • Java 11 发布计划来了,已确定 3个 新特性!!
  • Javascript编码规范
  • Java面向对象及其三大特征
  • laravel with 查询列表限制条数
  • leetcode-27. Remove Element
  • Node 版本管理
  • node学习系列之简单文件上传
  • PermissionScope Swift4 兼容问题
  • Puppeteer:浏览器控制器
  • python大佬养成计划----difflib模块
  • Sequelize 中文文档 v4 - Getting started - 入门
  • Spring Boot MyBatis配置多种数据库
  • thinkphp5.1 easywechat4 微信第三方开放平台
  • Vue.js源码(2):初探List Rendering
  • windows下mongoDB的环境配置
  • 初识MongoDB分片
  • 道格拉斯-普克 抽稀算法 附javascript实现
  • 干货 | 以太坊Mist负责人教你建立无服务器应用
  • 构建工具 - 收藏集 - 掘金
  • 基于webpack 的 vue 多页架构
  • 前端面试总结(at, md)
  • 什么软件可以提取视频中的音频制作成手机铃声
  • 远离DoS攻击 Windows Server 2016发布DNS政策
  • 走向全栈之MongoDB的使用
  • JavaScript 新语法详解:Class 的私有属性与私有方法 ...
  • 关于Kubernetes Dashboard漏洞CVE-2018-18264的修复公告
  • ​VRRP 虚拟路由冗余协议(华为)
  • ​数据结构之初始二叉树(3)
  • #define、const、typedef的差别
  • #我与Java虚拟机的故事#连载08:书读百遍其义自见
  • #我与Java虚拟机的故事#连载11: JVM学习之路
  • (2009.11版)《网络管理员考试 考前冲刺预测卷及考点解析》复习重点
  • (Forward) Music Player: From UI Proposal to Code
  • (一)u-boot-nand.bin的下载
  • (转载)在C#用WM_COPYDATA消息来实现两个进程之间传递数据
  • **登录+JWT+异常处理+拦截器+ThreadLocal-开发思想与代码实现**
  • .Net 6.0 处理跨域的方式
  • .net core 管理用户机密
  • .Net Core中的内存缓存实现——Redis及MemoryCache(2个可选)方案的实现