DockerをWindows7にインストールして触ってみる
Window7上でDockerをインストールしていじってみたメモです。
今更ながらDockerいじってみました。
Windows7上でやってみます。
インストール
DockerはLinux上で動作するので、Windows上で動かすためには仮想環境を用意します。
Docker Toolboxを利用すると、VirtualBoxという仮想化ソフトウェアもインストールしてくれます。
Docker Toolboxを利用して環境構築してみます。
BIOS設定
Windowsで仮想化ソフトを利用するには仮想化機能を有効にする必要があります。
仮想化機能を有効にするにはBIOS設定が必要です。
PCを起動してBIOS設定を表示します。
(BIOS設定はPCによって異なるので、「メーカー名 BIOS」で検索すれば設定方法が出てきます)
自分のPCではこんな感じでした。
Overclockingのタブに移動して、CPU Featuresを選択。
Intel Virtualization TechをEnabledへ設定。
これでPCを起動すればよいはずです。
自分の場合は、VMWareもVirtualBoxも過去にインストール済みなので、すでにEnabledになってました。
Docker Toolboxインストール
下記からDocker Toolboxをダウンロードします。
Docker Toolbox overview | Docker Documentation
ダウンロードしたインストーラを実行。
そのまま次へ。
gitやVirtualBoxがインストール済みの場合は、チェックを外していいですが、
面倒なので全部チェックして次へ。
そのまま次へ。
installを実行。
完了。
Docker起動
デスクトップに作成されたDocker Quickstart Terminalアイコンを実行します。
しばらく時間がかかった後、仮想環境が作成され起動します。
…のはずですが、下記の様なエラーになってしまいました。
"Looks like something went wrong in step 'Finalize' ... Please any key to continue..."
調べてみると、どうやらバグ?の様です。
対応のために下記のファイルを修正します。
C:\Program Files\Docker Toolbox\start.sh
63行目あたりのclearをコメントアウトします。
start.sh
STEP="Finalize" #clear cat << EOF
ファイルを保存したら、再度実行してみます。
すると、下記の様にクジラのマスコットが表示され、うまく起動しました。
ssh接続
teratermで接続してみます。
デフォルトではIPは192.168.99.100になっています。
デフォルトではユーザ名/パスワードはdocker/tcuserになっています。
接続するとboot2dockerのロゴが表示されます。
## . ## ## ## == ## ## ## ## ## === /"""""""""""""""""\___/ === ~~~ {~~ ~~~~ ~~~ ~~~~ ~~~ ~ / ===- ~~~ \______ o __/ \ \ __/ \____\_______/ _ _ ____ _ _ | |__ ___ ___ | |_|___ \ __| | ___ ___| | _____ _ __ | '_ \ / _ \ / _ \| __| __) / _` |/ _ \ / __| |/ / _ \ '__| | |_) | (_) | (_) | |_ / __/ (_| | (_) | (__| < __/ | |_.__/ \___/ \___/ \__|_____\__,_|\___/ \___|_|\_\___|_| Boot2Docker version 1.11.1, build HEAD : 7954f54 - Wed Apr 27 16:36:45 UTC 2016 Docker version 1.11.1, build 5604cbe docker@default:~$
Docker操作
docker run
docker runコマンドで、CentOSのイメージを起動して、Hello Dockerとechoしてみます。
初回はDockerイメージがダウンロードされるため、少し時間がかかります。
ダウンロード後、echoコマンドが実行されてHello Dockerが表示されました。
docker@default:~$ docker run centos:latest /bin/echo 'Hello Docker' Unable to find image 'centos:latest' locally latest: Pulling from library/centos a3ed95caeb02: Pull complete da71393503ec: Pull complete Digest: sha256:1a62cd7c773dd5c6cf08e2e28596f6fcc99bd97e38c9b324163e0da90ed27562 Status: Downloaded newer image for centos:latest Hello Docker
もう1度実行してみます。
2回目はDockerイメージがローカルに保存されているため、一瞬で表示されます。
docker@default:~$ docker run centos:latest /bin/echo 'Hello Docker' Hello Docker
docker images
docker imagesコマンドでダウンロードしたイメージの一覧が表示されます。
docker@default:~$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos latest 904d6c400333 3 weeks ago 196.8 MB
docker search
docker searchコマンドでDocker Hibに公開されているdockerイメージを検索します。
Apache httpサーバを検索してみます。
docker searchコマンドでhttpdを検索すると、部分マッチでたくさんヒットしました。
右側のOFFICIALと付いているのが公式のDockerイメージになります。
docker@default:~$ docker search httpd NAME DESCRIPTION STARS OFFICIAL AUTOMATED httpd The Apache HTTP Server Project 525 [OK] centos/httpd 7 [OK] microwebapps/httpd-frontend Httpd frontend allowing simple deployment ... 1 [OK] lolhens/httpd Apache httpd 2 Server 1 [OK] rgielen/httpd-image-php5 Docker image for Apache httpd with PHP 5 b... 1 [OK] publicisworldwide/httpd The Apache httpd webserver. 0 [OK] objectstyle/httpd ObjectStyle HTTPD Image 0 [OK] publici/httpd httpd:latest 0 [OK] robertdebock/docker-rundeck-httpd A docker container running httpd to act as... 0 [OK] steelorbis/httpd local httpd 0 [OK] solsson/httpd Derivatives of the official httpd image 0 [OK] rgielen/httpd-image-simple Docker image for simple Apache httpd based... 0 [OK] efrecon/httpd A micro-sized httpd. Start serving files i... 0 [OK] interferex/httpd Simple HTTPd Server + TC Rate Limiting 0 [OK] rgielen/httpd-image-drush Apache HTTPD + Drupal Shell Docker image b... 0 [OK] learninglayers/httpd 0 [OK] sohrabkhan/httpd Docker httpd + php5.6 (including php-mysql... 0 [OK] aintohvri/docker-httpd Apache HTTPD Docker extension for legacy P... 0 [OK] openhades/httpd OpenHades Apache httpd container 0 [OK] alizarion/httpd httpd on centos with mod_auth_openid module 0 [OK] pogotech/httpd An Apache httpd image with mod_ssl. 0 [OK] jbpt/httpd 0 [OK] luistmac/httpd Apache Http Server Docker image based on t... 0 [OK] jckrz/httpd-htaccess-ssl Apache httpd with SSL and .htaccess files ... 0 [OK] ibtech/httpd Apache HTTPD padrao da IBTech 0 [OK]
--starsオプションでstarの数で検索結果を絞れます。
starが6以上に絞る場合。
docker@default:~$ docker search --stars=6 httpd NAME DESCRIPTION STARS OFFICIAL AUTOMATED httpd The Apache HTTP Server Project 525 [OK] centos/httpd 7 [OK]
docker pull
docker pullコマンドでDocker Hubからイメージをダウンロードしてきます。
イメージ名にの後ろにコロンをつけてバージョンを指定できます。
httpdのバージョン2.4をダウンロードする場合。
docker@default:~$ docker pull httpd:2.4 2.4: Pulling from library/httpd 51f5c6a04d83: Pull complete a3ed95caeb02: Pull complete f3a0eba74ce0: Pull complete 64eb71d0a725: Pull complete 823f21c19a75: Pull complete 8e286d5abf35: Pull complete Digest: sha256:ba28a514d23e9e77e2e40a6e0ab0c88d9b43b7fe85388ff3d9a528d7742347eb Status: Downloaded newer image for httpd:2.4
docker imagesで確認してみると、確かに増えています。
docker@default:~$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE httpd 2.4 b3d5273c8fd0 3 weeks ago 198.6 MB centos latest 904d6c400333 3 weeks ago 196.8 MB
docker inspect
docker inspectコマンドでdockerイメージの詳細を確認できます。
json形式で表示されます。
docker@default:~$ docker inspect httpd:2.4 [ { "Id": "sha256:b3d5273c8fd0bef8b6ec060930157a90acb66e552acb8513fe91f7a0470d76e3", "RepoTags": [ "httpd:2.4" ], "RepoDigests": [], "Parent": "", "Comment": "", "Created": "2016-06-07T17:56:43.869283086Z", "Container": "8d03df6b984866109b5d7c1f8ad89e687d572ac2a642ac7110e52ec439f22b2b", "ContainerConfig": { "Hostname": "b0cf605c7757", "Domainname": "", "User": "", : : :
docker tag
docker tagコマンドでdockerイメージにタグ名を付けることができます。
httpd:2.4にtagを付けてみます。
docker@default:~$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE httpd 2.4 b3d5273c8fd0 3 weeks ago 198.6 MB centos latest 904d6c400333 3 weeks ago 196.8 MB
docker tagコマンドでユーザ名の後ろにスラッシュを付けて、イメージ名とバージョンを指定します。
docker@default:~$ docker tag httpd:2.4 pppurple/httpd:2.4
確認すると新しいイメージが増えています。
IMAGE IDを見ると、元のイメージと同じIDがついています。
これは同じdockerイメージであることを指してるためです。
docker@default:~$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE httpd 2.4 b3d5273c8fd0 3 weeks ago 198.6 MB pppurple/httpd 2.4 b3d5273c8fd0 3 weeks ago 198.6 MB centos latest 904d6c400333 3 weeks ago 196.8 MB
docker rmi
docker rmiコマンドでダウンロードしたdockerイメージを削除します。
docker@default:~$ docker rmi httpd:2.4 Untagged: httpd:2.4
確認すると消えていることが分かります。
docker@default:~$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE pppurple/httpd 2.4 b3d5273c8fd0 3 weeks ago 198.6 MB centos latest 904d6c400333 3 weeks ago 196.8 MB
IMAGE IDを指定しても削除できます。
docker@default:~$ docker rmi b3d5273c8fd0 Untagged: pppurple/httpd:2.4 Deleted: sha256:b3d5273c8fd0bef8b6ec060930157a90acb66e552acb8513fe91f7a0470d76e3 Deleted: sha256:5796a5c5d2c02026556f3f84af314cbf9a31da09e73996f478016faace995772 Deleted: sha256:7c39b98b1eece8dad3a86b10f98c71e7612fabeaa0c8c9d1508d0f985ba18a57 Deleted: sha256:a4d60638240231d76762094138ce36c4296a0499d35c0cd36fa5cc3feaa0ef82 Deleted: sha256:ff8a8da0543e16bca8463e9ac62f3cc8af6cc98e0a3284255dafc9e93385054c Deleted: sha256:9f953ec391af0d0802b4de23dfcf5e9bc87b40ac502aae28916eacf33b2b7ccb Deleted: sha256:94e74b8c9675bf3b794df4f5a5ad95f93cc0168344bdaa3d1ad0d39dca994fb7 Deleted: sha256:423d17bd79c797e5c0d403a788a2b86140ebb37f758afce879f2cc689bcbbd55 Deleted: sha256:8a12ca546a1bd35ad5d1521645c95bf731bf86ccec2131f5499d1fcdfd5f8d43 Deleted: sha256:0c01e4298c8c6e3d7452f2a3e61addc98ac96242b0d679ae22ec02dc6961e0d7 Deleted: sha256:db80480bef0957c557c70969684a28889240dac9f55018d97da96cc2d8948c11 Deleted: sha256:4dcab49015d47e8f300ec33400a02cebc7b54cadd09c37e49eccbc655279da90
確認すると消えていることが分かります。
docker@default:~$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos latest 904d6c400333 3 weeks ago 196.8 MB
こんなとこです。
【参考】