対象
普段仕事で 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 動かすのは大変だ。