2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Proxy 配下の WSL 上 Docker のネットワーク設定

Last updated at Posted at 2022-08-23

Proxy 配下の WSL 上の Docker、ネットワーク設定でいろいろハマったので記録しておく

  • 利用しているディストリビューションは WSL2 で Debian Sid

  • Windows 上でのプロクシサーバは proxy.company.local といったローカルDNS名で解決されている

  • 2023-07-13 systemd 有効な WSL2 について追記

TL;DR

WSL そのものの Proxy 設定 (個人設定)

  • ~/.bashrc などに以下を入れておく
export ALL_PROXY="http://ip.ad.re.ss:port"
export http_proxy=$ALL_PROXY
export https_proxy=$ALL_PROXY
export HTTP_PROXY=$ALL_PROXY
export HTTPS_PROXY=$ALL_PROXY
export no_proxy="127.0.0.1,localhost,.company.local"
export NO_PROXY=$no_proxy

Windows 本体のプロキシ設定がローカルDNS名だったとしても、WSL側では IP アドレスで設定しておいた方が良さげ

docker 本体の設定 (標準インストール状態)

  • /etc/docker/daemon.json
{
  "debug": false,
  "default-address-pools": [
    {
      "base": "172.33.0.0/16",
      "size": 24
    },
    {
      "base": "172.34.0.0/16",
      "size": 24
    }
  ],
  "dns": ["1.1.1.1","8.8.8.8"]
}
  • ここで DNS が指定されている、ので、docker デーモンはローカルドメインのプロクシサーバを見つけられない
  • 環境変数の HTTP_PROXY とか見てくれない

docker の個人設定

  • ~/.docker/config.json に書く
{
	"proxies": {
		"default": {
			"httpProxy": "http://10.255.2.51:8080",
			"httpsProxy": "http://10.255.2.51:8080",
            "noProxy": "selenium,*.company.local,127.0.0.0/8,172.33.0.0/16,172.34.0.0/16"
		}
	}
}
  • httpProxyhttpsProxy を書いておくことで、docker 本体がプロクシ経由でイメージを pull したり出来るようになる
  • noProxy を書いておかないと、docker-compose で複数コンテナのネットワークを作ったときにも プロクシ経由 で接続しようとするのでハマる
  • 公式ドキュメント(英文) にちゃんと書いてあるのだった
  • onthefly で日本語版を提供してくださっている matsuand さんに感謝!

で、うまく行っていたんだけどちゃんと動かなくなった…(2022-10-11更新)

  • /etc/default/docker に、.bashrc と同様に、
export HTTP_PROXY="http://ip.ad.re.ss:port"
export HTTPS_PROXY="http://ip.ad.re.ss:port"
export no_proxy="127.0.0.1,localhost,.company.local"

おまけ apt.conf 設定

  • プロキシ経由でないとネットに出られない場合、apt.conf を作らないと apt-get 等でソフトウェアのインストールや更新が行えない
  • /etc/apt.conf
Acquire::http::proxy "http:<fqdn>:<port>";

systemd 有効な WSL2 だと、また動かなくなってしまった

  • WSL2 を更新 したら、またまた出られなくなってしまいました
  • ググったら、こちらの記事 がヒットしたので、その通り、/etc/systemd/system/docker.service.d/override.conf を書いて解決
2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?