1. psコマンド
  2. execコマンド
  3. attachコマンド


    現在起動しているコンテナや、停止中を含むコンテナ一覧を表示するにはpsコマンドを使います。 起動させたコンテナに接続する場合は、execコマンドか、attachコマンドで行います。

    psコマンド

    psコマンドをオプション無しで実行すると、現在起動中のコンテナ一覧を表示できます。

    docker ps
    実行すると、以下のようになります。
    $ docker ps
    CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                                      NAMES
    3d7f578eab0c        my:php            "/bin/sh -c 'service "   3 months ago        Up 13 minutes       3306/tcp, 8082/tcp, 0.0.0.0:8082->80/tcp   phptest

    • 停止中のコンテナも含めた一覧表示

    • 起動中だけでなく、現在停止中も含めた全コンテナの一覧表示したい場合は、"-a"または"--all"オプションを指定します。

      docker ps -a
      実行すると、以下のようになります。
      $ docker ps --all
      CONTAINER ID        IMAGE                                                              COMMAND                  CREATED             STATUS                      PORTS                                      NAMES
      d1a51398154e        my:http-db                                                         "/bin/bash"              5 days ago          Exited (137) 4 days ago                                                pytest
      3af49ded16b6        my:http-db                                                         "/bin/bash"              5 days ago          Created                     3306/tcp, 0.0.0.0:8082->80/tcp             sharp_bartik
      3d7f578eab0c        my:php                                                             "/bin/sh -c 'service "   3 months ago        Up 7 minutes                3306/tcp, 8082/tcp, 0.0.0.0:8082->80/tcp   phptest
      66d2884553e3        961dbdb819ac238f1c32ed82064ba8b393865e80bab434cc0d10ac9844be335c   "/bin/sh -c '/bin/bas"   3 months ago        Exited (2) 3 months ago                                                clever_fermi
      e24968a03f00        my:mysql                                                           "/bin/bash"              3 months ago        Exited (137) 8 weeks ago                                               mysql
      ee4d1b8e96e1        my:php                                                             "/bin/sh -c 'service "   3 months ago        Exited (137) 3 weeks ago                                               itn
      e00b9a6e0e7e        my:rails                                                           "/bin/bash"              3 months ago        Exited (137) 3 months ago                                              rails

    • 直近に起動したコンテナ一覧表示

    • 現在実行中のコンテナを含まない、直近に起動したコンテナ一覧表示したい場合は、"-l"または、"--latest"オプションを指定します。

      docker ps -l
      実行すると、以下のようになります。
      $ docker ps --latest
      CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                    PORTS               NAMES
      d1a51398154e        my:http-db          "/bin/bash"         5 days ago          Exited (137) 4 days ago                       pytest

    execコマンド

    execコマンドの場合、以下のようになります。

    docker exec [オプション] <コンテナ名>  <コマンド> [コマンド引数]
    コンテナの指定は、runコマンドのときに--nameで指定した名前か、コンテナIDになります。 コマンドは、接続するなら/bin/bashなどのシェルを指定します。 接続せずにコンテナ内でコマンド実行を行う場合はそのコマンドを指定します。
    # docker exec -it dbserver /bin/bash
    [root@dbserver /]#
    コンテナから抜ける場合は、exit(シェルのコマンド)を実行します。

    • ユーザー指定

    • execコマンドで接続した場合、ユーザーはrootになります。 root以外で接続したい場合は、-uオプションで指定することが可能です。

      例 vagrantユーザーで接続したい場合
      # docker exec -u vagrant -it dbserser /bin/bash

    attachコマンド

    attachコマンドの場合は、以下のようになります。 ただしattachコマンドでコンテナに接続後、exitコマンドで接続から抜けると、コンテナが停止してしまいます。 コンテナを稼動させたままにしたい場合は、Ctrl + P、Ctrl + Q でコンテナから抜ける必要があり、通常はexecコマンドを使用する方が良いでしょう。

    # docker attach dbserver
    
    [root@dbserver /]#