Help us understand the problem. What is going on with this article?

dockerコマンドチートシート

More than 3 years have passed since last update.

dockerコマンドチートシート

覚えれないので書いてみた。
詳しい下記があるがよく使うものを抜粋しました。
http://docs.docker.jp/engine/reference/index.html

イメージの検索

Docker Hub 上のイメージを探します

docker search ruby

イメージのダウンロード

docker pull ruby:2.3.1

イメージの一覧

docker images

コンテナの一覧

docker ps

上記は実行中のものだけ。実行中ではない物すべて表示する場合は下記になります。

docker ps -a
オプション
-a: 停止したコンテナも含めて表示する

イメージの作成

Docker イメージは Dockerfile と「コンテクスト」(context)を使って構築します。構築時のコンテクストとは、特定の パス や URL の場所にあるファイルのことです。構築中のステップで、対象コンテクスト内のファイルを参照できます。

docker build [オプション] パス | URL | -
具体例
docker build -t kite_999/hoge .
オプション
  --build-arg=[]                  構築時の変数を指定
  --cpu-shares                    CPU 共有 (相対ウエイト)
  --cgroup-parent=""              コンテナ用のオプション親 cgroup
  --cpu-period=0                  CPU CFS (Completely Fair Scheduler) 間隔の制限
  --cpu-quota=0                   CPU CFS (Completely Fair Scheduler) クォータの制限
  --cpuset-cpus=""                実行時に許可する CPU。例 `0-3`, `0,1`
  --cpuset-mems=""                実行時に許可するメモリ。例 `0-3`, `0,1`
  --disable-content-trust=true    イメージの認証をスキップ
  -f, --file=""                   Dockerfileの名前 (デフォルトは 'PATH/Dockerfile')
  --force-rm                      常に中間コンテナを削除
  --help                          使い方を表示
  --isolation=""                  コンテナの隔離(独立)技術
  --label=[]                      イメージ用のメタデータを指定
  -m, --memory=""                 構築コンテナのメモリ上限を指定
  --memory-swap=""                整数値の指定はメモリにスワップ値を追加。-1は無制限スワップを有効化
  --no-cache                      イメージ構築時にキャッシュを使わない
  --pull                          常に新しいイメージのダウンロードを試みる
  -q, --quiet                     構築時の表示を抑制し、成功時はイメージ ID を表示
  --rm=true                       構築に成功したら、全ての中間コンテナを削除
  --shm-size=[]                   `/dev/shm` のサイズ。書式は `<数値><単位>`。 `数値` は `0` 以上。単位は `b` (bytes)、`k` (kilobytes)、 `m` (megabytes)、 `g` (gigabytes) のどれか。単位を省略するとバイトになる。サイズを省略すると `64m` になる。
  -t, --tag=[]                    '名前:タグ' 形式で名前とオプションのタグを指定
  --ulimit=[]                     Ulimit オプション

コンテナの起動

フォアグラウンド・モード、デタッチド・モードの大きく2つにわかれます。
デフォルトはフォアグラウンド・モードです。

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
具体例
docker run --rm -v "$PWD":/usr/src/hoge -w /usr/src/hoge ruby:2.3.1 bundle init

上記具体例はruby:2.3.1イメージを使用しコンテナを作り、カレントディレクトリをコンテナの/usr/src/hogeにマッピングさせ
「bundle init」を実行し、終了したらコンテナを削除する。という意味になります。

オプション
-name: コンテナに任意で名前をつけることができます。
--rm: 実行後のコンテナを削除します。指定しない場合はゴミが残り続けます。
-v: ホストのディレクトリをコンテナ内のディレクトリにマウントします。"$PWD"はカレントディレクトリを意味します。
-w: ワーキングディレクトリを指定します。

デタッチド・モード
-d: デタッチド・モードで起動する(バックグラウンド)
コンテナが実行するルート・プロセスが終了したら、デタッチド・モードで起動したコンテナも終了します。
デタッチド・モードのコンテナは停止しても自動的に削除できません。
つまり -d オプションでは --rm を指定できません。デタッチド・コンテナに再度アタッチ(接続)するには、 docker attach コマンドを使います。

フォアグラウンド・モード
-i STDINを開きます。
-t ttyを割り当てます。
上記 -i -t はセットで使うとターミナルでコンテナを実行することができます。
ターミナルをexitするとターミナルを終了し、コンテナも停止します。
終了したくない場合は「CTRL + p + q」で抜けます。

コンテナにアタッチ

起動中のコンテナにアタッチするコマンド。
コンテナにアタッチすると、バックグラウンドで実行しているコンテナをフォアグラウンドにします。

docker attach コンテナIDまたは名前

コンテナの再開

停止したコンテナを再起動するコマンド。
コンテナは以前に指定したものと同じオプションで起動。-a でアタッチすることが可能。

docker start [オプション] コンテナ [コンテナ...]

コンテナの再起動

docker restart [オプション] コンテナ [コンテナ...]

コンテナの削除

docker rm コンテナID or name
停止中のコンテナを一気に削除する
docker rm `docker ps -aq`
オプション
-f: 強制

イメージの削除

docker rmi イメージID

イメージの保存、復帰

保存
docker save イメージのタグ又はID > ファイル名
復帰
docker load < ファイル名
kite_999
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away