1. HOME
  2. 開発・ブログ運営
  3. Docker
  4. Docker 便利コマンドあれこれ
2016年07月08日
Docker 便利コマンドあれこれ
2016年07月09日
MySQL, WordPress, phpMyAdmin コン ...
2016年07月30日
Docker の仕組みを理解する(Docker クライアントと ...
2016年07月08日
オライリーの Docker 本(Docker Up & ...
2016年07月22日
WordPress が稼働する Apache2 コンテナと N ...
2016年07月06日
Jenkins コンテナの初期設定を自動化してみる

Docker 便利コマンドあれこれ

Docker してますか?サクッと Docker を操作するための便利コマンドです。

コンテナを開始(run)したり、停止したり(stop)、破棄したり(rm)様々なコマンドがありますが、それらコマンドを組み合わせることによって、より便利に Docker コンテナを操作したり、コンテナの情報を取得したりすることができます。

一通りコンテナの操作をしてみたら、これら便利なコマンドも使ってみてください。


コンテナ関連のコマンド

コンテナへ接続(中へ入る)

コンテナのシェル(bash)を起動して、コンテナの中に入ります。

$ docker run -it <コンテナID> /bin/bash

上記コマンドで入れない場合は、C シェルで

$ docker run -it <コンテナID> /bin/sh

コンテナの OS(ディストリビューション)を確認する

ディストリビューションの情報を確認することができます。

$ docker exec -it <コンテナID> cat /etc/os-release

コンテナのカーネルバージョンを取得する

当たり前だけど、ホストのカーネルバージョンと同じです。ここが Vagrant とかの仮想マシンとは違うところですね。

$ docker exec -it <コンテナID> name -r

コンテナの IP アドレスを取得する

何かとコンテナの IP アドレスを知りたいこと機会がありますが、このコマンドではコンテナの IP アドレスのみが出力されるので、シェルスクリプトとかでも便利に使えます。

$ docker inspect -f ‘{{ .NetworkSettings.IPAddress }}’ <コンテナID>

コンテナの環境変数を確認する

コンテナに設定されている環境変数一覧を出力します。

$ docker exec -it <コンテナ ID> env

全てのコンテナを開始する

停止している全てのコンテナを開始(run)します。

$ docker start $(docker ps -aq)

全てのコンテナを停止する

稼働している全てのコンテナを停止します。
(コンテナのメインプロセスへ SIGTERM を送信したのち、SIGKILL を送ります)

$ docker stop $(docker ps -q)

全てのコンテナを強制停止する

稼働している全てのコンテナを強制停止します。
(コンテナのメインプロセスへいきなり SIGKILL を送ります)

$ docker kill $(docker ps -q)

全てのコンテナを削除する

使用していない全てのコンテナを削除します。

$ docker rm $(docker ps -aq)

コンテナのボリュームを取得する

コンテナにマウントされているボリュームを出力します。

$ docker inspect -f ‘{{ .Volumes }}’ <コンテナ ID>

コンテナの環境変数を確認する

コンテナに設定されている環境変数一覧を出力します。

$ docker exec -it <コンテナ ID> env

コンテナで稼働しているプロセスを取得する

PID(プロセス ID)が 1 版のプロセスがメインプロセスです。

$ docker exec -it <コンテナ ID> ps aux

コンテナに登録されている Unix ユーザーを取得する

コンテナの /etc/passwd を表示します

$ docker exec -it <コンテナ ID> cat /etc/passwd

コンテナのホスト名を取得する

コンテナのホスト名です。

$ docker exec -it <コンテナID> hostname

コンテナの hosts ファイルの内容を確認する

コンテナ起動時の link オプションで別コンテナとリンクさせると、/etc/hosts ファイルにリンク先のコンテナが追加されます。ちゃんとリンクされているかの確認などに便利なコマンドです。

$ docker exec -it <コンテナID> cat /etc/hosts

イメージ関連のコマンド

<none> イメージの削除

全ての <none> イメージを削除します。

$ docker rmi $(docker images | awk ‘/^<none>/ { print $3 }’)

イメージの削除

全てのイメージを削除します。(使用中のイメージは削除しない)

$ docker rmi $(docker images -q)

データベース関連のコマンド

MySQL サーバーへの接続

MySQL が稼働しているコンテナの MySQL に接続します。ユーザー名とパスワードは適時変更してください。

$ docker exec -it <コンテナID> mysql -u root -proot

phpMyAdmin コンテナの起動

MySQL が稼働するコンテナの IP アドレスを指定すると、その MySQL に接続した状態で phpMyAdmin コンテナが起動します。phpMyAdmin コンテナが起動したら、http://<Docker ホストのIPアドレス>:8080 で phpMyAdmin にアクセスできます。

$ docker run -d -e PMA_HOST=<MySQL コンテナの IP アドレス> -p 8080:80 phpmyadmin/phpmyadmin

Redis サーバーへの接続

Redis が稼働しているコンテナの、Redis に接続します。

$ docker exec -it <コンテナID> redis-cli

まとめ

多くのコマンドは、コンテナ ID を指定して実行する必要があるので、事前にコンテナ ID を取得する必要があります。コンテナ ID は、

$ docker ps

または

$ docker ps -a

で確認することができますが、ちょいと面倒くさい。ってことで peco と組み合わせると、めっちゃ便利で Docker するときは手放せないわけですが peco との連携は別記事でエントリします。

また、ややこしいことをしなくても実は普通に Docker コマンドにあった、ってこともありますので(docker port とか)、Docker コマンドの一覧を再確認すると新しい発見があるかもしれません。

でわでわ。








この記事にコメントする





Copyright © 2012 - 2014 MacBook Air とWordPressでこうなった All rights reserved
Powered by WordPress.