Server Build Exercises on AWS (Amazon Web Services) 2022 edition

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 オプションを実行していればゴミはないはずです

リファレンス

Last updated on 7 Dec 2021
Published on 7 Dec 2021
Copyright (C) 2021-2022 Ken'ichi Fukamachi, All rights reserved. CC BY-NC-SA 4.0
We appreciate AWS Academy Japan for the offer of the learning environment.

Powered by Hugo. Theme by TechDoc. Designed by Thingsym.