追記:minikubeを教えてくれた先輩がWindows版の記事を追加してくれました。Windowsでproxy環境の方はこちら
環境
- Macbook Pro 2019 (Intel)
- Mac OS Monterey
経緯(蛇足。読み飛ばしOK)
SAMのビルド用に業務でDockerを使用しています。
Docker Desktop有償化以降、先輩の記事を参考にminikubeを使ってきましたが、細かいところで使い勝手が気になってました。
- 毎回起動時に
minikube mount
するのが煩わしい - ターミナルを開く度に
eval $(minikube docker-env)
するのが嫌 -
localhost
でアクセスできない
などなど。
そんな中、SAMのissueに「Colima と Rancher Desktop で動くようにしたで」というコメントを発見。試してみました。
問題点
ざっと検索した感じでRancher Desktopがベタ褒めされてたのでインストールしてみましたが、どうも会社のproxyが邪魔してdockerが上手く動かない。
$ docker run hello-world
Unable to find image 'hello-world:latest' locally
docker: Error response from daemon: Get "https://registry-1.docker.io/v2/": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers).
See 'docker run --help'.
環境変数にも ~/.docker/config.json
にもプロキシ設定してみましたが変化なし。
「override.yaml
を作って環境変数渡せばいいよ 」って記事も見ましたが、nerdctl は上手くいっても docker コマンドだと上手くいかない。
解決策
結局、以下の手順が必要でした。
-
~/Library/Application Support/rancher-desktop/lima/_config/override.yaml
を作成して、以下を記述するhostResolver: enabled: false dns: - <社内のDNSサーバー> env: http_proxy: http://<プロキシサーバー名>:<ポート番号> https_proxy: http://<プロキシサーバー名>:<ポート番号>
-
limaにログインして、
/etc/init.d/docker
に環境変数を指定-
limaにログイン
LIMA_HOME="$HOME/Library/Application Support/rancher-desktop/lima" "/Applications/Rancher Desktop.app/Contents/Resources/resources/darwin/lima/bin/limactl" shell 0
-
/etc/init.d/docker
に環境変数の設定を追加↓この2行を追加
export http_proxy="<プロキシサーバー名>:<ポート番号>/" export https_proxy="<プロキシサーバー名>:<ポート番号>/"
vi で編集
sudo vi /etc/init.d/docker
#!/sbin/openrc-run supervisor=supervise-daemon name="Docker Daemon" description="Persistent process that manages docker containers" description_reload="Reload configuration without exiting" # ↓ここに追加した export http_proxy="<プロキシサーバー名>:<ポート番号>/" export https_proxy="<プロキシサーバー名>:<ポート番号>/" command="${DOCKERD_BINARY:-/usr/bin/dockerd}" command_args="${DOCKER_OPTS}" 以下省略
-
サービス再起動
$ sudo service docker restart * Caching service dependencies ... [ ok ] * Stopping Docker Daemon ... [ ok ] * Starting Docker Daemon ... [ ok ]
-
さいごに
本当はproxyが無いのが一番好きです
参考記事
-
VPN利用でProxyを超えてRancher Desktopを使う
- 最初に見たのがこの方の記事。dockerに拘らなければこの記事だけで解決してたかも
-
MacOS×Rancher Desktopでdocker image pullが使えないの解決法
- これを読んで「LimaにLoginせんとダメやん」ってなったのが一番の気づき。ありがとうございます
-
軽量コンテナ用 OS alpline に dockerを入れるまで
- service 起動時の環境変数を設定しようとして「
systemctl
ないやん」ってなった時にお世話になったページ
- service 起動時の環境変数を設定しようとして「