すぐにDockerを試したい人のための基礎コマンド
Dockerの基礎のまとめが良かったので翻訳してみた.原典は,Docker Cheat Sheet.このまとめは説明は十分にあるが,例がほとんどない.実例を使って,コンテナとイメージに関する基礎コマンドをまとめてみる.
OS X で試したい
Vagrantを使う.バージョン1.4からはDockerのprovisioningに対応してるのでそれを使う. Download Vagrant - Vagrantより.dmgをダウンロードしてきてインストール.
vagrant init precise64 http://files.vagrantup.com/precise64.box
Vagrantfileを以下のようにすれば,すぐにDockerを使える.
Vagrant.configure("2") do |config|
config.vm.box = "precise64"
config.vm.provision :docker do |d|
d.pull_images "ubuntu"
end
end
ログイン
vagrant ssh
準備
コンテナのIDをいちいち保持しておくのは面倒,忘れるので,以下のaliasを設定しておくと直近に起動したコンテナのIDを呼び出すことができるようになる(15 Docker tips in 5 minutes).
alias dl='docker ps -l -q'
コンテナ
コンテナを作成する.-d
オプションでバックグラウンドで実行する.
docker run -d ubuntu /bin/sh -c "while true; do echo hello world; sleep 1; done"
コンテナを停止する.
docker stop `dl`
コンテナを起動する.
docker start `dl`
コンテナを再起動する.
docker restart `dl`
起動中のコンテナに接続する.
docker attach `dl`
コンテナ内のファイルをホストにコピーする.
docker cp `dl`:/etc/passwd .
ホストのディレクトリをコンテナにマウントする.
docker run -v /home/vagrant/test:/root/test ubuntu echo yo
コンテナを削除する.
dockr rm `dl`
コンテナの情報
起動中のコンテナを表示する.停止中のコンテナも表示するには,-a
オプション.
docker ps
コンテナの情報(IPなど)を表示する.
docker inspect `dl`
コンテナのログを表示する.
docker logs `dl`
コンテナのプロセスを表示する.
docker top `dl`
イメージ
コンテナからイメージを作成する.タグ名は<username>/<imagename>が奨励されている
docker run -d ubuntu /bin/sh -c "apt-get install -y hello"
docker commit -m "My first container" `dl` tcnksm/hello
Dockerfileからイメージを作成する.
echo -e "FROM base\nRUN apt-get install hello\nCMD hello" > Dockerfile
docker build tcnksm/hello .
イメージ内にログインする.-rm
オプションをつけるとコンテナの停止後にそのコンテナは破棄される.
docker run -rm -t -i tcnksm/hello /bin/bash
イメージをリモートレポジトリにアップロードする.あらかじめDocker indexにアカウントを作成しておく必要がある.今回の例はこちら.
docker login
docker push tcnksm/hello
イメージを削除する.
docker rmi tcnkms/hello
イメージの情報
イメージ一覧を表示する.
docker images
イメージの詳細情報(IPなど)を表示する.
docker inspect tcnksm/hello
イメージのコマンド履歴を表示する.
docker history tcnksm/hello