首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >需要将rpm软件包安装在没有internet连接的docker容器内。

需要将rpm软件包安装在没有internet连接的docker容器内。
EN

Stack Overflow用户
提问于 2018-05-30 13:12:39
回答 1查看 10.1K关注 0票数 0

我有一台机器,它没有互联网连接,也没有访问任何坞库的权限(所以不可能有图像拉扯)。我想安装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: not found The command '/bin/sh -c rpm -ivh /home/memcached-1.4.15-10.el7_3.1.x86_64.rpm' returned a non-zero code: 127

我想这是因为在一个码头容器中,操作系统的安装是最少的。那么,如何在没有互联网连接的容器中安装rpm包管理器呢?是否有可安装的文件。

我知道这不是,而不是,使用图像的中央存储库的最佳实践。想知道在没有互联网的情况下安装是否可能?

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

代码语言:javascript
复制
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"]
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-30 14:02:47

Docker /dotnet构建在buildpack-deps:jessie(来自这里)之上,后者构建在这里这里之上。

debian不使用rpm包管理器,它对包使用deb格式。/bin/sh亲切地通知您,说/bin/sh: 1: rpm: not found还没有找到rpm管理器。您可以阅读如何在debian 这里上安装rpm包。

不管怎样,你为什么不使用deb文件和dpkg包管理器呢?您可以为debian jessie 这里找到memcached pacakge。您可以在您的dockerfile中这样做:

代码语言:javascript
复制
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 export,然后复制和导入它在您的目的地机器?这样的方法是更简单,apt-get将为您解决和安装所有memcached依赖项。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50605645

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档