『最初のDockerの本』ノート

4647 ワード

イニシャル


Docker情報の確認:
docker info

ミラーリング


ミラーの表示

docker images

ミラー検索

docker search ubuntu

ミラーの取得

docker pull ubuntu

ミラーの構築

  • docker commit
  • DockerFile

  • ようき


    コンテナの作成


    インタラクティブコンテナ


    インタラクティブコンテナの起動:
    docker run -i -t ubuntu /bin/bash
    
  • -t -iフラグは、起動されたコンテナがインタラクティブであることを保証する:-iフラグは、コンテナ内のstdINがオンであることを保証する;-tは、作成されたコンテナが偽tty端末を割り当てることを示す.
  • ubuntuは、これに基づいて作成する
  • のベースミラーを表す.
  • /bin/bashコンテナが起動するとどのようなコマンドが実行されるかを示す
  • .

    デーモンコンテナ


    デーモン・コンテナは、バックグラウンド・プロセスやサービスと同様に、フロント・セッション・プロセスがキーボード入力コマンドを待機してインタラクティブ・セッションを行う必要はありません.
    docker run --name you_container_name -d  ubuntu .... 
    
    -dを使用して、容器がガーディアン(バックグラウンドで動作する)容器であることを示す.

    コンテナの名前

    docker run --name your_container_name -it ubuntu /bin/bash
    

    コンテナに名前を付けます(名前はyour_container_name).その後、コンテナの代わりにコンテナ名を使用できます.したがって、コンテナ名は一意でなければなりません.コンテナ名が指定されていない場合は、ランダムにコンテナ名が割り当てられます.

    ローカルディレクトリをコンテナにマウント

    docker run -it -v /host/dir:/container/dir ubuntu64 /bin/bash
    
  • -vパラメータを通過し、コロンの前はホストディレクトリであり、絶対パスでなければならない.コロンの後は、ミラー内にマウントされているパスです.
  • デフォルトでマウントされているパス権限は読み書きです.読み取り専用として指定する場合、:roのラベル、すなわち-v /host/dir:/container/dir:ro
  • を使用することができる.

    コンテナの表示

    docker ps -a
    

    ここで、-aオプションは、停止および実行中を含むすべてのコンテナを表示することを示す.これがない場合は、実行中のコンテナのみが表示されます.
    docker ps -l
    

    最後に実行したコンテナをリストします.
    docker ps -n 5
    

    実行中でも停止中でも、最後に使用した5つのコンテナをリストします.ここで5は別の数字に指定できます.
    docker insepct your_container_name
    

    コンテナの詳細を取得し、構成情報、名称、コマンド、ネットワーク構成などを含め、JSON形式で表示します.

    スターティングコンテナ


    停止済みコンテナの起動

    docker start your_container_name
    

    コンテナ名またはコンテナIDを使用して、そのコンテナを指すことができます.コンテナIDは、そのコンテナを特定するのに十分なデジタルビット数を入力すればよい.以下も使用できます.
    docker restart your_container_name
    

    注意!docker startコマンドを使用すると、コンテナが起動しただけで、docker runコマンドで指定したパラメータに従って実行されます.パラメータがコンテナ起動時にインタラクティブなshellインタフェースを指定した場合、docker startはshellインタフェースに切り替えることができず、docker attachコマンドを使用して切り替える必要があります.

    容器付着


    Dockerコンテナが再起動されると、docker runコマンドで指定されたパラメータに従って実行されます.したがって、コンテナが再起動された後にインタラクティブセッションshellが実行される場合は、docker attachコマンドを使用して、コンテナのセッションに再アタッチします.
    docker attach your_container_name
    

    コンテナの自動再起動


    エラーによりコンテナが停止し、作成するコンテナを指定した方法で自動的に再起動できます.
    docker run --restart=always  --name your_container_name -d ubuntu ...
    
  • キーは、コンテナの終了コードが何であるか(通常の終了コードを含む、終了コード--restart=always)にかかわらず、Dockerが自動的にコンテナを再起動することを示すオプション0です.
  • はまた、このフラグを--restart=on-failureに設定することもでき、これにより、コンテナの終了コードが0以外の値である場合にのみ自動的に再起動される.
  • --restart=on-failure:5は、コンテナ終了コードが0以外の場合、Dockerが自動的に再起動を試み、最大5回再起動することを示しています.

  • コンテナ内プロセスの操作


    実行中のコンテナ内のプロセスの表示

    docker top yout_container_name
    

    コンテナ内で新しいプロセスを開始


    Dockerコマンドラインインタフェースでコンテナに直接コマンドして新しいプロセスを開始できます.
    docker exec -d your_container_name touch /etc/new_config_file
    

    これは、実行中のコンテナ実行コマンドyour_container_name(すなわち、プロセス実行コマンドの起動)が使命であることを示す.touch /etc/new_config_fileは、このプロセスがバックグラウンドプロセスであることを示す.
    docker exec -t -i your_container_name /bin/bash
    
    -dコンテナの内部でプロセスyour_container_name/bin/bash(または-i -t)が開始されたことを示すプロセスは、インタラクション可能なプロセスであることを示す.

    容器の停止

    docker stop your_container_name
    
    docker kill your_container_name
    
    -itは、docker stop信号をDockerコンテナプロセスに送信する.あるコンテナを迅速に停止したい場合は、SIGTERMコマンドを使用して、docker kill信号をコンテナプロセスに送信することもできます.

    コンテナの削除

    docker rm your_container_name
    

    注意!実行中のコンテナは削除できません.
    次のコマンドを使用して、すべてのコンテナを一度に削除できます.
    docker rm `docker ps -a -q`
    
    SIGKILLフラグは、すべての(all)コンテナをリストすることを表し、-aフラグは、コンテナの他の情報を返さずに、コンテナのIDを返すだけであることを示す.