質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

87.36%

Dockerで構築したubuntuの起動について

解決済

回答 3

投稿

  • 評価
  • クリップ 2
  • VIEW 2,582

score 11

docker createによって作成したubuntuコンテナの起動方法がわかりません。

下記のような手順でubuntuを起動しようとしていますができません。

docker pull ubuntu
ubuntuイメージの取り込み

docker create ubuntu
コンテナの作成

docker ps -a
で確認
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
eb9ba54bfd07        ubuntu              "/bin/bash"         16 seconds ago      Created                                 admiring_goodall

↓ここからが問題です。

コンテナのスタート
docker start eb9ba54bfd07

でSTATUSがupになるかと思ったのですがExitedになってしまいます。
この状態からどのように起動するのでしょうか?

ちなみにdocker run -it ubuntuからコンテナを作成した場合は、うまく起動しました。
docker createによって作成したコンテナの起動方法はどのようにすればよいのでしょうか?

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 3

checkベストアンサー

+2

今回のケースなら docker start -ai eb9ba かな
マニュアル参照

普通は run 使った方が簡単だと思います。

以下、追記
上のだけではダメでcreateのときにtty, stdinをつけとかないといけないようです。

docker create -it ubuntu
docker start -ai ...

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/03/20 00:36

    回答誠にありがとうございます。

    試してみたのですがdocker start -ai は
    docker start + docker exe と同じようです。

    いずれにせよdocker run -it ubuntuから作成・起動したコンテナを一旦停止して、
    再度startする場合には有効なようですが、
    docker createで作成したコンテナ(まだ起動したことがないコンテナ)に対してはやはり無効なようです。

    2番目の回答のdyoshikawaさんのコメントのように、
    一旦createから離れて勉強を続けたいと思います。

    キャンセル

  • 2019/03/20 06:13

    すいません。これだけではダメだったんですね。
    私も調べてみましたが、createのときに、-itのオプションがいるようです。

    キャンセル

  • 2019/03/20 07:12

    朝早くの引き続きの回答誠にありがとうございます。
    できました!

    start時のオプションではなく、create時だったのですね。

    docker create -it ubuntu
    でコンテナを作成して、
    docker start <CONTAINER ID>

    docker ps -aで
    STATUS をUpを確認

    docker exec -it <CONTAINER ID> /bin/bash
    でコンテナに入ることができました。

    キャンセル

+2

Dockerコンテナが起動するのはプロセスが持続している間だけです。
例えばWebサーバをフォワード実行で起動するなどです。
特にそういったコマンドを ENTRYPOINT や CMD に設定していないのであれば docker run や docker start しても起動後すぐに終了するので EXITED となります。

現時点で知識がほとんどないようですからアドバイスすると、まずイメージの設計図である Dockerfile を書き、それを docker build してイメージを作り、そのイメージを docker run で起動するという基本の流れをまずは学習して下さい。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/03/19 19:34

    ちょっと調べましたがcreateは起動していないコンテナを作るコマンドですね。しかし実際上必要なシチュエーションはかなり少ないと思われるのでcreateコマンドから一旦離れた方が良いと思います。buildとrunを使って下さい。

    キャンセル

  • 2019/03/19 19:42

    どうしてもcreateを使いたい場合、docker create ubuntuで生成したコンテナに入る方法は私は思いつかないです。起動コマンドがbashなのですぐ終了します。
    ですが持続する起動コマンドを持つnginxイメージなら可能です。docker create nginx→docker start コンテナID→docker exec -ti コンテナID bash で入れます。
    ただ何度も言うようですがcreateコマンドは使い所がないのでbuildを学びましょう。

    キャンセル

  • 2019/03/19 22:35 編集

    丁寧なコメント頂き本当にありがとうございます。

    書籍を見ながら勉強しているのですが、Docker Hubからpull済みのイメージ→コンテナを生成する際にはcreateは必須とばかり思っていました。ちょっとbuildとの連関についてこれから調べたいと思います。

    キャンセル

0

それ、起動していますよ。
起動しても、やる事が無いのでexitしただけです。

docker run -it ubuntuからコンテナを作成した場合は、うまく起動しました。

ご自身で書かれているとおり、このように起動してやればいいんです。(というか、最後にshだか入れませんでしたか?)

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/03/19 18:04 編集

    ご回答誠にありがとうございます。

    すでにubuntuイメージをpullし、
    docker run=(docker create + docker start)という認識において再度質問いたします。

    docker run -it ubuntu
    で作成・起動したコンテナから1回exitした場合は、一度STATUSがExitedに変わっても
    再度 docker startをするとUpの状態に変わります。

    ちょっと疑問がはっきりしてきたので質問を変更してみます。

    質問の通りにcreateで作成したコンテナ(eb9ba54bfd07)に入るには、どのようにしたら良いのでしょうか?

    docker exec -it eb9ba54bfd07 bin/bash
    のようにして入りたいのですが、そもそもUpにならないと実行できないようです。
    (docker run -it ubuntuで生成したコンテナには上記のようなコマンドで入れました。)

    以上よろしくお願いいたします(言葉足らずですみません)。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 87.36%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る