ネット散策していたら最近の仮想化技術(コンテナ技術?)で Docker というのが流行っているらしいことがわかりました。比較的簡単に試せるみたいなので、さくらのナリッジのこちらの記事を参考にちょっと試してみます。
1.環境構築
母艦環境は普段使っている Ubuntu14.04 LTS 64bit です。
(Dockerは64bit環境のみサポートのようです)
Synapticで「docker」で検索すると「docker.io」というのがでてきます。説明を見ると「Linux container runtime」ということなので、これがDocker環境のようです。
こいつにチェックマークをつけてインストールします。
インストールが終わったら、コンソールで
$ docker
とすると、説明が出てきました。
2.Hello Worldを試してみる
まず、ちょっと試してみます。
$ docker run ubuntu /bin/echo hello world 2015/01/28 00:49:03 Post http:///var/run/docker.sock/v1.12/containers/create: dial unix /var/run/docker.sock: permission denied
となってエラーになってしまいました。
こちらをみるとどうやら基本は root で弄るもののようです。でも、一般ユーザーでも触る方法があるようなのですが、今回はrootで動かしてみます。
$ sudo docker run ubuntu /bin/echo hello world Unable to find image 'ubuntu' locally Pulling repository ubuntu b39b81afc8ca: Pulling image (latest) from ubuntu, endpoint: https://registry-1.db39b81afc8ca: Download complete 511136ea3c5a: Download complete 53f858aaaf03: Download complete 837339b91538: Download complete 615c102e2290: Download complete hello world $
待つこと30秒位でしょうか。イメージをダウンロードした後、表示されました。
2回目はすでにイメージがローカルにあるので、一瞬で表示されました。
3.WordPressを動かしてみる
追っかけるだけになってますが、同様にWordPressを動かしてみます。
$ sudo docker build -rm -t tomono/wordpress git://github.com/jbfink/docker-wordpress.git Warning: '-rm' is deprecated, it will be replaced by '--rm' soon. See usage. Sending build context to Docker daemon 112.1 kB Sending build context to Docker daemon Step 0 : FROM ubuntu:latest ---> b39b81afc8ca (途中省略) Step 19 : CMD ["/bin/bash", "/start.sh"] ---> Running in 9ed82742d36f ---> 0dfcba1fda89 Removing intermediate container 9ed82742d36f Successfully built 0dfcba1fda89 $
・・・として、イメージが生成されるようです。
で、実行。
$ sudo docker run --name wordpress -d -p 8080:80 -p 2022:22 tomono/wordpress 4d13e5e74ddb45787f9c0e11120d6e88ad9844895a1779a9fe33c8c191104dca $
ブラウザで 127.0.0.1:8080 にアクセスするとWordPressが動いているのが確認できました。
$ sudo docker stop wordpress wordpress $ sudo docker start wordpress wordpress $
で停止、スタートも確認できました。
4.不要になったコンテナの削除
最後に不要になったコンテナを
$ sudo docker rm `sudo docker ps -a -q` 4d13e5e74ddb 8e8f4a436e47 29378160a9e8 $
として削除しました。イメージの方は、
$ sudo docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE <none> <none> eba3c3f6eca6 About an hour ago 458.2 MB ubuntu latest b39b81afc8ca 10 days ago 188.3 MB $ sudo docker rmi eba3 Deleted: eba3c3f6eca6595bcb2822b4c532ce47fb99d2ecd6db169c9dffe4beebca644e (途中略) Deleted: caa76d7258ec6b0f5d1f1c0e6a7827612fcb0c995cd8654d60d90dd8ff606562 $ sudo docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE ubuntu latest b39b81afc8ca 10 days ago 188.3 MB $ sudo docker rmi b39b Untagged: ubuntu:latest Deleted: b39b81afc8cae27d6fc7ea89584bad5e0ba792127597d02425eaee9f3aaaa462 (途中略) Deleted: 511136ea3c5a64f264b78b5433614aec563103b4d4702f3ba7d4d2698e22c158 $ sudo docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
として削除しました。
まだまださくらのナリッジのこちらの記事にはたくさん説明があります。どんなことができるのか解りやすくて助かります。