前提
- コピペで動くようにコマンドはそのまま貼りつけています。
- 本記事内では、proxyサーバーのIPアドレスを「192.168.0.1」、ポートは「1」とします。
- 社内サーバー等にproxy無しでアクセスする場合はno_proxyの設定が必要ですが、本記事では省略します。
- ~/.bashrcやシステム設定に書かずに、以下のパッケージ等で個別に設定します。
- apt
- Docker(pull)
- Docker(run)
- Firefox
- git
- wget
- curl
- pip
環境等
- 動作確認した環境は下表の通りです。
Name(Version) | |
---|---|
OS | Ubuntu(18.04) |
apt | (1.6.6 (amd64)) |
Docker | (18.06.1-ce) |
Firefox | (65.0) |
git | (2.20.1) |
wget | (1.19.4) |
curl | (7.58.0) |
pip | (19.0.2) |
proxyの設定
変数の設定
- 実際に設定するIPアドレスとポートはネットワーク管理者に問い合わせされたい。
export HTTP_PROXY=http://192.168.0.1:1
apt
- 設定ファイルを作成する。
echo -e "Acquire::http::proxy \"$HTTP_PROXY\";\\nAcquire::https::proxy \"$HTTP_PROXY\";\\nAcquire::ftp::proxy \"$HTTP_PROXY\";" | sudo tee /etc/apt/apt.conf
Docker(pull)
- ディレクトリおよび設定ファイルを作成し、反映させる。
sudo mkdir /etc/systemd/system/docker.service.d
echo -e "[Service]\\nEnvironment=\"HTTP_PROXY=$HTTP_PROXY/\"" | sudo tee /etc/systemd/system/docker.service.d/http-proxy.conf
sudo systemctl daemon-reload
sudo systemctl restart docker
Docker(run)
- オプションと設定ファイルと二種類方法がある。
- 環境変数を設定した後にcommitすると、imageの設定として保存される?ので注意する。
- Ubuntuベースのコンテナでは、proxyを適切に設定した場合パッケージ毎にproxyの設定を行う必要はない...はず。
- proxyを設定する環境変数と各コマンドの調査結果は下記表の通り。(この記事いらない説)
http_proxy | https_proxy | HTTP_PROXY | HTTPS_PROXY | |
---|---|---|---|---|
apt | ○ | ☓ | ☓ | ☓ |
pip | ☓ | ○ | ☓ | ☓ |
git(https://~) | ☓ | ○ | ☓ | ○ |
wget(http://~) | ○ | ☓ | ☓ | ☓ |
wget(https://~) | ☓ | ○ | ☓ | ☓ |
curl(http://~) | ○ | ☓ | ☓ | ☓ |
curl(https://~) | ☓ | ○ | ☓ | ☓ |
コマンド実行時にオプションで設定する場合
- 以下の例では、環境変数「HTTP_PROXY」と「http_proxy」に設定し、docker runコマンドを実行している。
docker run -it --rm -e HTTP_PROXY=$HTTP_PROXY -e http_proxy=$HTTP_PROXY --name ubuntu1604 ubuntu:16.04
設定ファイルで設定する場合
- 以下の例では、環境変数「HTTP_PROXY」と「http_proxy」に設定される。
- 設定ファイル作成後、docker runを実行すると、全てのコンテナに適用されるが、-eオプションで上書きできる。
mkdir ~/.docker/
echo -e "{\\n \"proxies\":\\n {\\n \"default\":\\n {\\n \"httpProxy\": \"$HTTP_PROXY\"\\n }\\n }\\n}\\n" > ~/.docker/config.json
Firefox
git
- 以下のコマンドで設定する。
git config --global http.proxy $HTTP_PROXY
- 設定ファイルが作成される
~/.gitconfig
[http]
proxy = http://192.168.0.1:0
wget
- 設定ファイルを作成する。
echo -e "\\nhttps_proxy = $HTTP_PROXY\\nhttp_proxy = $HTTP_PROXY\\nftp_proxy = $HTTP_PROXY" | sudo tee -a /etc/wgetrc
curl
- 設定ファイルを作成する。
echo "proxy = \"$HTTP_PROXY\"" > ~/.curlrc
pip
コマンド実行時にオプションで設定する場合
- a