Dockerチートシート
個人的によく使うコマンドのまとめ
2014/05/20現在の情報です。
設定確認
docker version # Dockerのバージョン表示
docker info # コンテナ・イメージ数、ユーザ情報など現在の情報表示
コンテナ起動
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
# 例: ubuntu_hostというホスト名でubuntuを起動。
docker run -it -h ubuntu_host ubuntu:14.04 /bin/bash
# 例: 最大メモリ使用量を256MBに制限して起動。終了したらコンテナ自動削除
docker run -it -m 512m --rm ubuntu:14.04 /bin/bash
# 例: redisというコンテナ名でコンテナをバックグラウンドで起動
# (コンテナ名はLink,マウント機能で利用)
docker run -d --name redis dockerfile/redis
# 例: 上で作成したredisコンテナに対してdbというエイリアスをつけてコンテナ間通信
docker run -it --link redis:db ubuntu /bin/bash
# 例: 6379ポートをホストにマッピング、ホストの/data/redisをコンテナの/dataにマッピング
docker run -d -p 6379:6379 -v /data/redis:/data --name redis dockerfile/redis
コンテナ間通信の参考: Dockerコンテナ間のlink,database.ymlの書き方 | SOTA
メジャーなレポジトリ
-
busybox, centos, ubuntu, debian
- 公式イメージ。人気なのは言わずもがな
-
dockerfile/*
- Dockerfile Projectが管理。
- ElasticSearch,nginx,redis,mongodbなど。baseはubuntu 14.04
- よくメンテナンスされている
- プログラムはソースからmakeしており、ほぼ最新
- dockerfileで作成されているため、自分で変更もしやすい
-
orchardup/*
- Orchard (Dockerコンテナのホスティングサービス会社) が提供
- redisやpostgresql,nginxなど。baseはubuntu12.04
- 比較的安定している感じ
-
tutum/*
- Tutum もDockerコンテナのホスティングサービス
- MySQLやRabbitMQなど。
- よく更新されている。baseはubuntu14.04
-
base
- 今は非推奨。中身はubuntu12.10。
-
stackbrew/*
- オフィシャルパッケージの管理者(?)
-
google/*
- Google Cloud Platform関連など
個人的にはDockerfile Projectが使いやすそうな感触。
データも/dataに入るようになっているため、ホストのディスクをマウントさせやすい。
コンテナ操作
docker ps -as # コンテナ一覧(停止コンテナ含む、サイズ表示)
docker start CONTAINER # コンテナを起動
docker restart CONTAINER # コンテナ再起動
docker stop CONTAINER # コンテナ終了
docker kill CONTAINER # コンテナ強制終了
docker attach CONTAINER # コンテナへアタッチ
docker top CONTAINER # コンテナのプロセスを表示
docker logs -f CONTAINER # コンテナのログを表示(ログ出力をfollow)
docker inspect CONTAINER # コンテナの情報を表示
docker rm CONTAINER # コンテナを削除
イメージの操作
docker pull NAME[:TAG]
docker images --tree # イメージ一覧表示(ただし,treeオプションは非推奨)
docker inspect IMAGE # イメージの情報を表示
docker rmi IMAGE # イメージを削除
イメージ作成
# dockerfileからイメージ作成
docker build -t NAME[:TAG] .
# またはコンテナからイメージを作成
docker commit -m "comment" CONTAINER NAME[:TAG]
# 自分のイメージをpush
docker login
docker push NAME[:TAG]