如何在部分隔离的主机上的docker容器中运行yum?

问题描述 投票:1回答:2

我有一台半隔离网络的机器。我必须使用代理连接到互联网。我已经验证了在我的主机上,在设置了http_proxy环境变量之后,我可以从public yum repository接收更新。

现在我想在我的机器上的docker容器中做同样的事情,但它似乎不起作用。

$docker run --rm -it --net=host rhel /bin/bash
[root@MyCont] http_proxy=http://myproxy:1234/
[root@MyCont] echo -e "[base] \nname=CentOS-7 - Base - centos.com\nbaseurl=http://mirror.centos.org/centos/7/os/\$basearch/\ngpgcheck=1\ngpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-7" > /etc/yum.repos.d/CentOS7-Base-centos.repo \
&& yum clean all \
&& yum install -y openssh-server  openssh-clients

我在主机网络模式下启动了我的容器,所以我假设我应该拥有与容器中的主机相同的网络堆栈。因此,如果我正确设置http_proxy,我应该在容器内外具有相同的yum行为。

是否有可能在一个docker容器中运行yum,该容器的主机位于需要http_proxy访问yum的半隔离网络上?

docker yum http-proxy docker-networking
2个回答
0
投票

您应该在构建中的图像中安装软件

因此在你的dockerfile中使用yum install

但是,如果由于某种原因你需要在容器内yum然后....

docker run -e http_proxy=http://10.9.2.2:8080

请注意,如果yum install无法正常工作,请尝试...

yum update

第一 - 由于某种原因,这有帮助!

也用......

docker exec -it containerName bash

进入容器,然后尝试执行你的yum命令。根据需要导出任何代理env变种。


0
投票

就像danday74所说,你必须使用'export https_proxy = http ...'。在我的环境中工作。为了安全起见,我导出了http_proxy和https_proxy。

© www.soinside.com 2019 - 2024. All rights reserved.