69912


<https://hub.docker.com/_/php> のイメージを使用しています。

# docker run -dti で hogehoge-php コンテナを作って起動

[code]

    % docker run -dti --name hogehoge-php php
    
[/code]

とすると `hogehoge-php` コンテナが立ち上がっていることが確認できました。

確認方法:

[code]

    % docker ps -a
    CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                     PORTS               NAMES
    2c9e7ff1a952        php                 "docker-php-entrypoi…"   6 seconds ago       Up 5 seconds                                   hogehoge-php
    
[/code]

# pull, create, start でやってみる

`docker run` は `docker pull`, `docker create`, `docker
start`の一連の流れを一気にやってしまうコマンドだというのを読んだので、じゃあ個別にやってみようと思い下記のようにしてみました。（すでに php
イメージはローカルにあるので `docker pull` はしてません）

[code]

    % docker create --name foofoo-php php
    c7687c088dda9b71d9380e9ca472afa436ac63785c1d2c195b8a08147f8adec9
    % docker start foofoo-php
    foofoo-php
    % docker ps -a                           
    CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                      PORTS               NAMES
    c7687c088dda        php                 "docker-php-entrypoi…"   16 seconds ago      Exited (0) 3 seconds ago                        foofoo-php
    
[/code]

上記のようにやってみると、`Exited (0) 3 seconds ago`となってしまい、`docker create`で作った `foofoo-
php` コンテナが立ち上がりっぱなしになりません。

`docker start` に `d`,`t`,`i`オプションを渡せばいいのかと思い下記のようにしてもそもそもオプションがなくて渡せません。

[code]

    % docker start -dti foofoo-php
    unknown shorthand flag: 'd' in -dti
    See 'docker start --help'.
    
[/code]

`i`オプションだけはあるようで、実行はできましたが、やはり起動しっぱなしになりません。

[code]

    % docker start -i foofoo-php
    Interactive shell
    
    % docker ps -a                
    CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                      PORTS               NAMES
    c7687c088dda        php                 "docker-php-entrypoi…"   3 minutes ago       Exited (0) 5 seconds ago                        foofoo-php
    
[/code]

どうすれば、`run -dti`の代わりに`create`そして`start`できるのでしょうか？

# ちなみに docker run に -dti なしでやってみた場合

ちなみに `docker run` に `-dti` なしでやってみたところ

[code]

    % docker run --name barbar-php php
    Interactive shell
    
    % docker ps -a
    CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                      PORTS               NAMES
    6215c71a13a4        php                 "docker-php-entrypoi…"   15 seconds ago      Exited (0) 15 seconds ago                       barbar-php
    
[/code]

コンテナは出来ましたが、立ち上がっていません。 `docker start` すればいいのかと思って やってみても立ち上がりません。

[code]

    % docker start barbar-php
    barbar-php
    % docker ps -a                    
    CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                      PORTS               NAMES
    6215c71a13a4        php                 "docker-php-entrypoi…"   33 seconds ago      Exited (0) 3 seconds ago                        barbar-php
    
[/code]

# 一方 docker run -dti で作ったコンテナを stop して start した場合

一方 `docker run -dti` で作ったコンテナ（本質問はじめに作った `hogehoge-php`）を `stop` して `start`
した場合は、立ち上がりぱなしになります。

[code]

    % docker stop hogehoge-php
    hogehoge-php
    % docker start hogehoge-php
    hogehoge-php
    % docker ps -a             
    CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                          PORTS               NAMES
    6215c71a13a4        php                 "docker-php-entrypoi…"   4 minutes ago       Exited (0) About a minute ago                       barbar-php
    c7687c088dda        php                 "docker-php-entrypoi…"   11 minutes ago      Exited (0) 8 minutes ago                            foofoo-php
    2c9e7ff1a952        php                 "docker-php-entrypoi…"   14 minutes ago      Up 2 seconds                                        hogehoge-php <----- ここで立ち上がっているのがわかる
    
[/code]

# 挙動まとめ

  * docker run 
    * ditオプションあり 
      * run後、立ち上がりぱなしになる
      * start後、立ち上がりぱなしになる
    * ditオプションなし 
      * run後、立ち上がりぱなしにならない
      * start後、立ち上がりぱなしにならない
  * docker create 
    * start後、立ち上がりぱなしにならない


CC BY-SA 4.0
2020-08-23T07:49:54.227
69790
2020-08-27T05:34:16.207
2020-08-23T08:12:32.900
9008
9008
question
docker
docker run -dti と同じことを pull, create, start でやる方法がわからない


`docker create -t` をすると立ち上がりぱなしになるということでした。

本家にした質問の[回答](https://stackoverflow.com/a/63608972/1979953)より

引用:

[code]

    docker pull php
    docker create -t --name hogehoge-php php
    docker start hogehoge-php
    
[/code]


CC BY-SA 4.0
2020-08-27T05:34:16.207
69912
2020-08-27T05:34:16.207
9008
69790
answer