docker コマンド チートシート

  • 988
    いいね
  • 0
    コメント

日時: 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>

参考