dockerコンテナの操作
docker start
コンテナを起動します。 コンテナ名には build の時につけたタグが使えます
docker start debian-web-2tier-web.py
docker stop
コンテナを停止します。 コンテナ名には build の時につけたタグが使えます
docker stop debian-web-2tier-web.py
docker run
docker run オプション コンテナ名
docker run は2つの操作を同時に行ってくれる便利なコマンドです。 コンテナを作成(docker build)し、 作成したコンテナを開始(docker start)してくれます。 自分が知らない(OS上にイメージが無い)コンテナイメージだった場合には、 Docker Hub(hub.docker.com)から自動的に拾ってきてくれます。 有名なオープンソースソフトウエアはDocker Hubにイメージがあるため、 たいていの場合コンテナを自作する必要はありません。 自分たちの開発したソフトウエアのコンテナを作る必要はありますが、 周辺のインフラ基盤は既存のイメージが利用可能なことが多いです
登場する run のオプションは次のあたりです
-d サーバとして実行(正確にはdaemon, 実行したターミナルを切り離す)
-it 実行したコンテナにログインしたい時に指定する(おもにデバッグ用途)
--rm コンテナの終了時に、ゴミを消したい
--name=名前 実行したコンテナ(いわゆるインスタンス)に名前を付けて区別しやすくする
-p hport:lport コンテナの外からアクセスさせたいポートを開く呪文
:を使う類似のオプションは、みな「ホスト(コンテナの外)側:コンテナ(の内)側」です
--network=名前 接続したい仮想ネットワークの名前を指定
(指定しない場合はデフォルトのbridgeという名のネットワークに接続されます。
デフォルトは 172.17.0.0/16 で、.1 がデフォルトルート、
そしてネットワークインターフェイス名は docker0 です。
インターネットへの接続は172.17の出口でNATし、ホストのIPアドレスに変換しています)
docker exec
docker exec -it コンテナ名 実行したいUnixコマンド [Unixコマンドの引数]
コンテナ内でUnixコマンド(lsやpsなど)を実行(execute)する仕組みですが、 シェルを実行してしまえばUnixにログインしているのと同じことなので、
[例]
docker exec -it debian-web-2tier-web.py /bin/bash
のように実行すればコンテナの中に入れます。 対話的な使い方をしたい場合は -it オプション(-i 対話的, -t 擬似端末を用意)をつけると覚えておいてください
対話的な使い方ではなく単にコンテナ内のプロセス一覧を見たい(ps を取りたい)なら 次のように ps を実行してください
docker exec debian-web-2tier-web.py ps
docker ps
dockerが動かしているコンテナ一覧をみるコマンドが ps です(いわゆる ps をとります)。 コンテナが動いているか?を確認するには
docker ps
を実行します。終了したコマンドのゴミまで全部表示したいなら
docker ps -a
です。 ちなみに docker run を –rm オプションを実行していればゴミはないはずです