2

半独立ネットワーク上にあるマシンがあります。インターネットに接続するにはプロキシを使用する必要があります。ホストで http_proxy 環境変数を設定した後、パブリック yum リポジトリから更新を受信できることを確認しました。

今、自分のマシンの 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 の動作が得られるはずです。

ホストが yum にアクセスするために http_proxy を必要とする半独立ネットワーク上にある docker コンテナー内で yum を実行することは可能ですか?

4

2 に答える 2

0

danday74 が言ったように、' export https_proxy=http...' を使用する必要があります。私の環境では動作します。安全のために、http_proxy と https_proxy の両方をエクスポートします。

于 2016-09-06T18:46:44.427 に答える
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 コマンドを実行してみてください。必要に応じてプロキシ環境変数をエクスポートします。

于 2016-03-15T15:41:27.873 に答える