Dockerをある程度よく使うようになりました。そのため、私がよく使うコマンドをメモしておきます。「これもよく使うだろう」という声も多いかもしれませんが、ご容赦ください。
インストール方法は記事「Windows 8.1でDocker ToolboxをインストールしてDockerを動かす」に書きました。併せて記事「【入門者向け解説】短時間で理解するDocker」も書いています。
#前提
なんとなくコマンドを使っていて、よく知らなったのですが、Docker1.13から新しいスタイルのコマンドができました。「Docker 1.13 – What’s New Including Docker Prune Features」に新旧対応表があります。この記事では新旧を併記しています。旧スタイルの方が短くて使いやすい・・・
ちなみに「プログラマのためのDocker教科書」という本で学習しています。OSやミドルウェアの知識が少ない自分のような人間にとって、丁寧に解説していてありがたいです。
#コマンド
##image関連
docker image pull / docker pull
レジストリからイメージ/リポジトリダウンロード
構文: docker image pull [OPTIONS] NAME[:TAG|@DIGEST]
docker image pull gcr.io/tensorflow/tensorflow
docker image ls / docker images
イメージの一覧表示
docker image ls [OPTIONS] [REPOSITORY[:TAG]]
docker image inspect / docker inspect
JSON形式でイメージの詳細確認。旧スタイルの"docker inspect"でコンテナIDを指定するとコンテナの詳細確認も可能。
docker image inspect [OPTIONS] IMAGE [IMAGE...]
docker image tag / docker tag
イメージにタグ付けをします。イメージのタグ付け、送信、取得に詳細があります。
docker image tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
docker image rm / docker rmi
イメージの削除。イメージ名はREPOSITORYまたはIMAGE IDを指定。放置しておくとディスクを圧迫するのでよく使います。イメージを参照しているコンテナが残っていると削除できないので注意してください。
docker image rm [OPTIONS] IMAGE [IMAGE...]
よく使うオプション | 内容 |
---|---|
--force , -f | 強制削除 |
docker build
Dockerfileを作ったイメージの作成。すごく便利です。他の人が作ったDockerfileをもとにイメージを作成できます。
※**カレントディレクトリからDockerfileを読み込む場合は最後に"."(ドット)をつけましょう。**最後のドットを見逃して、1時間ほど迷いました
docker build [OPTIONS] PATH | URL | -
よく使うオプション | 内容 |
---|---|
--file , -f | Dockerファイルの名前(デフォルトは ‘PATH/Dockerfile’) |
--tag , -t | 名前とタグ(‘名前:タグ’) |
##container関連
docker container create / docker create
新しいcontainerを作成(起動なし)。CPU、メモリ関連等オプションが非常に多いです。
docker container create [OPTIONS] IMAGE [COMMAND] [ARG...]
rem 使用例:Image"python"を使って"tesseract"という名前のcontainer作成。また、ポート80同士をマッピング。
docker container create -it --name tesseract -p 80:80 python
よく使うオプション | 内容 |
---|---|
-i, --interactive | ホストの入力をコンテナの標準出力をつなげる。おまじないのように必ず使っています。 |
-t,--tty | コンテナの標準出力とホストの出力をつなげる。おまじないのように必ず使っています。 |
--publish , -p | コンテナポートの割当。外部からアクセスされるポート番号:コンテナ側のポート番号を指定。 例8080:80 |
--name | コンテナ名(ホスト名ではない)を割当 オプションなしだとランダムな命名なのでわかりやすい名前をつけましょう 「Dockerで --name 指定しないでコンテナ実行するとヘンテコなデフォルト名がつく」 |
docker container run / docker run
新しいcontainerを作り、起動。CPU、メモリ関連等オプションが非常に多いです。オプションはdocker container createを参照ください。起動時に"/bin/bash"を最後につけてbashを実行することが多いです。
docker container run [OPTIONS] IMAGE [COMMAND] [ARG...]
docker container start / docker start
containerの起動。
docker container start [OPTIONS] CONTAINER [CONTAINER...]
docker container stop / docker stop
containerの停止。
docker container stop [OPTIONS] CONTAINER [CONTAINER...]
docker container ls / docker ls
Containerの一覧表示。
docker container ls [OPTIONS]
rem 使用例:全containerを表示
docker container -a
代表的オプション | 内容 |
---|---|
--all , -a | 全containerの表示。デフォルトは起動中のcontainerのみです。 |
docker container rm / docker rm
continerの削除。
docker container rm [OPTIONS] CONTAINER [CONTAINER...]
よく使うオプション | 内容 |
---|---|
--force , -f | 強制削除 |
docker container exec / docker exec
起動中のcontainerに対してコマンド実行。"bash"を実行することが多いです。
docker container exec [OPTIONS] CONTAINER COMMAND [ARG...]
rem 使用例:"cabocha"という名前のcontainerでbashを実行
docker container exec -it cabocha bash
よく使うオプション | 内容 |
---|---|
-i, --interactive | ホストの入力をコンテナの標準出力をつなげる。おまじないのように必ず使っています。 |
-t,--tty | コンテナの標準出力とホストの出力をつなげる。おまじないのように必ず使っています。 |
docker container cp / docker cp
ファイル/フォルダのコピー。
docker container cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|-
docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH
rem 使用例1:Local PCのカレントディレクトリのファイルneko.txtをcontainer"cabocha"のtmpフォルダにコピー
docker container cp neko.txt cabocha:tmp
rem 使用例2:container"cabocha"のtmp/out.txtをLocal PCのtmpフォルダにコピー
docker container cp cabocha:tmp/out.txt /tmp
##その他
docker-machine stop
Machineの停止。Oracle Virtualbox上で動かしている場合、停止時にこのコマンドを実行します。
docker-machine stop [arg...]
docker-machine upgrade
MachineのUpgrade。これやったらなぜかDockerが動かなくなり、defaultを消して再作成させられました。私の環境が特殊なだけ?
docker-machine upgrade [arg...]