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。这些镜像都是经过裁剪的,去除了不必要的内容。