概要
Windows 10 HomeでDockerを動かしました。
折角だから取り敢えず簡単にベンチマークしました。
Dockerを使えるようにする
今のところDocker For WindowsはWindows 10 Homeでは使えないようです。
Windows10 HomeでDocker環境構築を参考にDocker Toolboxを使ってDockerをWindows 10 Homeで使えるようにします。
Docker Toolboxのインストールをします。
- https://docs.docker.com/toolbox/toolbox_install_windows/ から「Get Docker Toolbox for Windows」ボタンをクリックしてDocker Toolboxをダウンロード
- ダウンロードしたファイルを起動してDocker Toolboxをインストール
PowerShellからDockerマシンを立ち上げてDockerを使えるようにします。
> docker-machine create default
> docker-machine start
> & "C:\Program Files\Docker Toolbox\docker-machine.exe" env | Invoke-Expression
コンテナを作って起動
必要なファイルを作る
ファイル構成
- Dockerfile
- benchmark.py
Dockerfile
FROM alpine:3.7
RUN apk --update add python3
RUN pip3 install --upgrade Benchmarker
ADD . /app
WORKDIR /app
CMD python3 benchmark.py
benchmark.py
from benchmarker import Benchmarker
with Benchmarker() as bench:
@bench("add")
def _(bench):
count = 0
for i in range(1000000):
count += i
@bench("append")
def _(bench):
l = []
for i in range(1000000):
l.append(i)
コンテナのビルドと実行
ビルド
> docker build -t dockertoolbox-benchmark .
実行
> docker run --rm -v /c/Users/{ユーザ名}/Documents/docker_test:/app -it dockertoolbox-benchmark
補足:Windowsで-vオプションを使って、例えば C:\Users\{ユーザ名}\Documents\docker_test
というパスをマウントしたい場合は /c/Users/{ユーザ名}/Documents/docker_test
といったフォーマットで書く必要があるみたいです。
実行結果
Docker Toolboxを使った場合
> docker run --rm -v /c/Users/{ユーザ名}/Documents/docker_test:/app -it dockertoolbox-benchmark
## benchmarker: release 4.0.1 (for python)
## python version: 3.6.3
## python compiler: GCC 6.4.0
## python platform: Linux-4.9.93-boot2docker-x86_64-with
## python executable: /usr/bin/python3
## cpu model: Intel(R) Core(TM) i7-8700 CPU @ 3.20GHz # 3191.994 MHz
## parameters: loop=1, cycle=1, extra=0
## real (total = user + sys)
add 0.2211 0.2200 0.2200 0.0000
append 0.2971 0.3000 0.2900 0.0100
## Ranking real
add 0.2211 (100.0) ********************
append 0.2971 ( 74.4) ***************
## Matrix real [01] [02]
[01] add 0.2211 100.0 134.4
[02] append 0.2971 74.4 100.0
Dockerを使わずWindowsで実行した場合
> python .\test.py
## benchmarker: release 4.0.1 (for python)
## python version: 3.6.4
## python compiler: MSC v.1900 64 bit (AMD64)
## python platform: Windows-10-10.0.17134-SP0
## python executable: C:\Users\{ユーザ名}\Anaconda3\python.exe
## cpu model: Intel64 Family 6 Model 158 Stepping 10, GenuineIntel
## parameters: loop=1, cycle=1, extra=0
## real (total = user + sys)
add 0.0596 0.0625 0.0625 0.0000
append 0.0859 0.0781 0.0625 0.0156
## Ranking real
add 0.0596 (100.0) ********************
append 0.0859 ( 69.3) **************
## Matrix real [01] [02]
[01] add 0.0596 100.0 144.2
[02] append 0.0859 69.3 100.0
Docker Toolboxを使った場合はそれなりに遅くなる。
TODO
いちいちディレクトリ名を指定せずにマウントをできるようにしたい。
PWD
を使ってやってみたがエラーになる。
> docker run --rm -v ${PWD}:/app -it dockertoolbox-benchmark
C:\Program Files\Docker Toolbox\docker.exe: Error response from daemon: invalid mode: /app.
See 'C:\Program Files\Docker Toolbox\docker.exe run --help'.