Edited at

docker コマンド チートシート

More than 1 year has passed since last update.

日時: 2015-01-12

Docker バージョン: 1.4.1

docker 触るたびに毎回調べてばかりで覚えられないので、頭を整理するために自分用にチートシート作る事にした。


docker pull


イメージを引っ張ってくる

$ docker pull ubuntu

$ docker pull centos


タグを使ってイメージのバージョンを指定する

$ docker pull ubuntu:12.04


docker build


キャッシュを無効にする

ビルド時にキャッシュを無効にしたい場合は --no-cache を true にする。デフォルトでは false

$ docker build --no-cache=true


docker run


ホスト名を付けて起動する

-h で指定する

$ docker run -h spam -i -t ubuntu /bin/bash

spam というホスト名を付けてみた


コンテナ名を付けて起動する

--name でコンテナに名前を付けられる

$ docker run --name spam -i -t ubuntu /bin/bash

spam という名前を付けてみた


起動して開きっぱなし

-i を付けると起動時に STDOUT を開きっぱなしにしてくれる

$ docker run -i -t ubuntu /bin/bash


イメージのタグを指定して実行する

$ docker run ubuntu:13.10 /bin/echo hello world


起動して終了するとコンテナ破棄する

docker run をするとき --rm を付ける。これを付けると docker を終了させると同時に docker コンテナを削除してくれる。

$ docker run --rm -t -i ubuntu /bin/bash


コンテナ起動時に CPU 相対的使用率を指定する

CPU 使用率を決めたい場合。

$ docker run -c 200 -i -t ubuntu /bin/bash


コンテナ起動時にメモリを指定する

$ docker run -m 512m -i -t ubuntu /bin/bash

-m を使う事でメモリ容量を指定できる。単位は b,k,m,g です。上記例では 512メガバイトを割り当てている。


コンテナバックグラウンド起動

-d を使う事でバックグラウンドで起動できる。

$ docker run -i -t -d ubuntu /bin/bash


ホストディレクトリをコンテナにマウントする

-v コマンドと : を使います。絶対パスが必要なので要注意です

$ docker run -v /home/spam/test:/root/test

$ docker run -v `pwd`/test:/root/test


データボリュームでコンテナ間でデータを共有する

-v を使うとデータボリュームをコンテナに作成できる。

$ docker run --name tmp -v /tmp -i -t ubuntu /bin/bash

$ docker run --volumes-from tmp -i -t ubuntu /bin/bash

これで両方のコンテナで /tmp が共有される。


データボリュームの読み込みをリードオンリーにする

--volumes-from で指定コンテナに ro を付けることでリードオンリーとなる。

$ docker run --volumes-from tmp:ro -i -t ubuntu /bin/bash


docker start


コンテナを起動してログイン

-a を付けると attach します。

$ docker start -a <ContanerID>


docker attach


起動中のコンテナにログイン

$ docker attach <ContainerID>


docker ps


直近で起動したコンテナの ID を取得する

$ docker ps -l -q

このコマンドを dl とかに設定しておくと良いそうです。自分はやってません ... 。


コンテナ一覧

-a を付けないと起動しているコンテナだけになる

$ docker ps -a


古いコンテナを一気に削除する

$ docker ps -a | grep 'weeks ago' | awk '{print $1}' | xargs docker rm


docker rm


停止中のコンテナを一気に削除する

$ docker rm `docker ps -aq`


コンテナをすべて強制的に削除する

$ docker rm -f `docker ps -aq`


docker images


イメージの一覧を表示する

$ docker images


docker rmi


イメージの削除

$ docker rmi <ImageID>


参考