DockerをWindows10で使えるようにする
参考:無償の「Docker for Windows」で手軽にLinuxコンテナを利用する (1/2) 参考:Windows10マシンにDocker Toolbox を入れて個人用の開発環境を作る
私は、windows10のHomeエディションで、Hyper-vというのが使えないので、Docker Toolboxを使いました。
Docker Toolboxをインストール
DOCKER TOOLBOXからダウンロードします。現状ではバージョンは、1.12.2でした。インストールして、Docker Quickstart Terminalを起動します。すると黒い画面にクジラがでてきました。
これでインストール完了っぽい。
Dockerの使い方
基本的な使い方は、Docker Hubからイメージを取得して、それを基にコンテナを作成・実行するらしい。UbuntuでPython3を使えるようにしてみたいと思います。
Ubuntuのイメージをダウンロード
Docker Hubで色々なイメージを探せます。
$ docker pull ubuntu:latest
実行してみる
$ docker run -it ubuntu:latest /bin/bash
これでシェルが実行されました。exitで終了します。フォアグラウンドで実行するものは終了した時点でコンテナが消えるそうです。docker runで、コンテナの作成・実行が行われます。-itでフォアグラウンドでの実行を指定できます。イメージの次に何かを書くことで引数として渡せるようです。
バックグランド実行は、run -dです。バックグラウンド実行のコンテナを確認するには、docker psコマンドを実行します。
$ docker run -d nginx:latest $ docker ps
実行中コンテナをストップするのは、docker stopです。ストップしてもデータが残っているので削除する場合は、docker rmです。ストップ中コンテナの確認は、docker ps -aで確認できます。docker rm -f でストップ&削除することもできます。container idの指定はidの先頭数文字でOKなようです。dockerイメージの削除も、docker rmiでできます。例えば、下記のようにします。
$ docker rmi nginx:latest
イメージをつくってみる
Dockerイメージを自分で作ってみます。docker buildというコマンドを使うそうです。Dockerfileというファイルに設定を書いて、それをdocker buildするとイメージが作成されるようです。
Dockerfile
FROM ubuntu:14.04 RUN apt-get update -y && apt-get install -y python3
Dockerfileを作成したら、docker buildコマンドでイメージを作ります。
$ docker build -t test/hoge:latest . $ docker run -it test/hoge:latest /bin/bash > python --version
とりあえずできました。pythonのバージョンは3.4.3でした。
あと、毎回終了するとまっさらになってしまうので、ローカル環境とマウントさせて、データを保存できるようにしたい。
$ docker run -it -v /c/Users/hoge/docker:/hogehoge test/hoge:latest
-v ローカルパス:サーバパスとやるとマウントできる。
pipもインストールする
上記のDockerfileを修正して、pipも使えるようにします。python3-pipをインストールします。
Dockerfile
FROM ubuntu:14.04 RUN apt-get update -y && apt-get install -y python3 python3-pip
その他困ったこと
同じ名前でbuildしたら昔のイメージが<none>という名前になって消せなくなった
参考:How to remove unused Docker containers and images
これで一括で消せる。Repositoryとか、Tagとかが
$ docker rmi $(docker images | grep "^<none>" | awk '{print $3}')