docker
proxy
Scoop

Scoop で始める Docker(proxy 環境下)

対象

普段仕事で Docker 使わない人にとって、Windows 環境に Docker を入れるのは面倒
会社でプロキシがあったりするとさらに面倒

Docker Kitematic とかいらないし、さくっとDocker試したいんだけどー、
でもプロキシの設定面倒だし、環境汚したくもない ぐらいの人が対象です。

プロキシの設定が必要ないなら、scoop のドキュメントどおり にすればいい。

scoop について

Windows向けパッケージ管理ソフト

Gradle のインストールをするときに、scoop 使えと書いてあったので入れたら存外便利だった。

scoop については taichi さんの、ScoopでWindowsにおける開発環境構築を最適化しよう を読めば大体どんなものか分かると思う。

もっと詳しくは公式ドキュメントを読もう。

以下は全て Powershell

scoop のインストール

公式の通りに

iex (new-object net.webclient).downloadstring('https://get.scoop.sh')

セキュリティの警告が出たら

Set-ExecutionPolicy RemoteSigned -scope CurrentUser 

Docker のインストール&起動

VirtualBox あるいは VMWare が必要なのでインストールしておく。

以下の例は VirtualBox で 環境変数 HTTP_PROXY と HTTPS_PROXY が設定されている前提
多分プロキシ設定がない場合でも動くと思う。

extracts bucket の登録

docker 関連のツールは scoop の extras bucket に入っているので登録する。
2017/10/18 docker系の 定義ファイル は scoop の 標準 Bucket に入ってた。
以下の extras bucket の登録等は必要ない。タブンネ( ˘ω˘ )

> scoop bucket add extras

※ Git がインストールされていないと git が必要と言われるので、

> scoop install git

でインストールする。
git の proxy 設定もおそらく必要なので以下のように設定しておく。

> git config --global http.proxy $env:http_proxy
> git config --global https.proxy $env:https_proxy

docker のインストール

> scoop install docker docker-compose docker-machine

docker-machine の作成

# docker-machine の作成
# 環境変数 http(s)_proxy も一緒に登録
> docker-machine create -d "virtualbox" --engine-env  http_proxy=$env:http_proxy --engine-env https_proxy=$env:https_proxy default

# ローカルマシンの環境変数 no_proxy の設定
> $env:no_proxy="$(docker-machine ip)"

# ローカルマシンの環境変数を設定
> & docker-machine env | Invoke-Expression

# Hello world
> docker run hello-world

# 終了
> docker-machine stop

次回以降は以下のコマンドを叩く

> docker-machine start
> $env:no_proxy="$(docker-machine ip)"
> docker-machine env | Invoke-Expression

dockerインスタンスへのproxy設定

Docker インスタンスにも環境変数渡さないと動かない。

> docker run -e http_proxy=$env:http_proxy -e https_proxy=$env:https_proxy -it ubuntu

うーん、プロキシ下で docker 動かすのは大変だ。

参考