gpt4 book ai didi

linux - 需要在没有互联网连接的情况下在 docker 容器中安装 rpm 包

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:03:40 24 4
gpt4 key购买 nike

我有一台没有互联网连接且无法访问任何 docker 存储库的机器(因此无法拉取图像)。我想安装 memcached 并且我有可用的 .rpm 文件。

当我想在主机上安装时,我执行命令 rpm -ivh memcached-1.4.15-10.el7_3.1.x86_64.rpm 。但我想那是因为 rpm 包管理器预装在主机操作系统上。

在 docker 容器中,我加载了 .rpm 文件,并在 dockerfile 中包含命令 RUN rpm -ivh memcached-1.4.15-10.el7_3.1.x86_64.rpm。之后我收到以下错误:

/bin/sh: 1: rpm: 未找到
命令“/bin/sh -c rpm -ivh/home/memcached-1.4.15-10.el7_3.1.x86_64.rpm”返回了一个非零代码:127

我想那是因为在 docker 容器中,操作系统只有最低限度的安装。那么如何在没有互联网连接的情况下在容器内安装 rpm 包管理器呢?是否有可安装的文件。

我了解使用图像中央存储库不是最佳做法。想知道是否可以在没有互联网的情况下进行安装?

我现在正在 CentOS 机器上创建容器。以下是 dockerfile:

FROM microsoft/dotnet:2.0-runtime

WORKDIR /home
#mempkgtest folder contains the .rpm file
COPY ${source:-mempkgtest} .

RUN rpm -ivh /home/memcached-1.4.15-10.el7_3.1.x86_64.rpm

ENTRYPOINT ["dotnet", "--info"]

最佳答案

Docker 镜像 microsoft/dotnet 建立在 buildpack-deps:jessie-scm(来自 here)之上,它建立在 debian:jessie(来自 herehere)之上。

debian 不使用 rpm包管理器,它使用 deb包的格式。/bin/sh 友善地通知您,通过说 /bin/sh: 1: rpm: not found 没有找到 rpm 管理器。您可以阅读如何在 debian 上安装 rpm 包 here .

无论如何,你为什么不使用 deb 文件和 dpkg 包管理器?您可以找到 debian jessie 的 memcached pacakge here .你可以在你的 dockerfile 中做这样的事情:

ADD http://ftp.us.debian.org/debian/pool/main/m/memcached/memcached_1.4.21-1.1+deb8u1_amd64.deb
RUN dpkg -i memcached_1.4.21-1.1+deb8u1_amd64.deb

请记住,您还需要复制依赖项。

你为什么不在可以访问互联网的机器上制作你的docker镜像,而不是使用docker export导出docker镜像然后复制并导入它到您的目标机器上?这种方式更简单apt-get 将为您解析并安装所有memcached 依赖项。

关于linux - 需要在没有互联网连接的情况下在 docker 容器中安装 rpm 包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50605645/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com