Docker使った
Mac上のVagrantに「Official Ubuntu 14.04 64bit」のイメージを入れて起動し、そこにdockerを入れて試すことにした。
Qiitaで注目されていた、Dockerハンズオン資料 - Qiita を中心にやってみた。
インストール
僕はニフティクラウドではないので、インストールは公式の手順で行なった。最初32bitのイメージを間違えて入れていたのでエラーでたけど、64bitのUbuntuだとちゃんと動作。
覚えておくポイント
- 一般ユーザからだとsudoしてばっかになので
$ sudo su -
してroot化していろいろ試すとよさげ。(本番環境ではやめたほうがいいかもしれないけど) # docker run -i -t ubuntu /bin/bash
を打つと、自動的に最新版のubuntuをpull(ダウンロードみたいな感じ?)して、コンテナを起動、さらに/bin/bashシェルに対してinteractiveモードで接続してくれる。# docker run ubuntu /bin/echo "Hello World"
みたいなのも可能-i -t
は-it
とか-ti
の省略が使える
- 上記のようにDockerコンテナ上のシェルを立ち上げた状態で、別のシェルから
# docker ps
すると実行中プロセス一覧に実行中のコンテナがでる。 # docker commit <Container ID> <Tag>
は、interactiveモードを終了して、# docker ps
で何も表示されなくなった後でも有効- コンテナとホストのポートをつなぐ場合は
# docker run -i -t -p 80:80 <保管したimage名(REPOSITORY)> /bin/bash
と言った感じで明示しないといけない - コンテナのエクスポート:
# docker export 011d4e7c710a > nifty.tar
、インポート# cat nifty.tar | docker import - nifty
途中で出た問題とか
/var/run/docker.sock: permission denied
vagrant@vagrant-ubuntu-trusty-64:~/Dev/docker$ docker run ubuntu /bin/echo 'hello world' 2014/08/27 03:32:48 Post http:///var/run/docker.sock/v1.14/containers/create: dial unix /var/run/docker.sock: permission denied
一般ユーザで、 sudo つけ忘れてdockerコマンド実行したら出た。
unable to locate package lxc-docker
間違えて32bit OSで実行してた。Dockerのインストールに失敗する(unable to locate package lxc-docker) | too young to die , too drink to live
一時的に抜けるショートカット ctrl+p, qが使えなかった
(ctrl +p , q で一時的に離脱)
ってあるけど、動作しなかった。MacからVMへのSSHでやってるからかな。boot2dockerだとちゃんと動作するのかも?
途中で出たnyancatのdocker image
イメージを公開するための Docker Hubっていうのがあって、コンテナを作った後、そこ経由で自由に公開できるみたい。
supertest2014/nyan Repository | Docker Hub Registry - Repositories of Docker Images