Linux
Ubuntu
docker

dockerコマンドチートシート

More than 1 year has 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 < ファイル名