61897


Docker使い始めの者です。  
docker create --name wow centos  
を用いてwowという名前のコンテナを作りそこに接続（？）しようとしたところ、execもattachもできずに困っています。

[code]

    $ docker images
    REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
    centos              latest              0f3e07c0138f        33 hours ago        220MB
    nginx               latest              f949e7d76d63        8 days ago          126MB
    
    $ docker ps
    CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
    
    $ docker ps -a
    CONTAINER ID        IMAGE               COMMAND             CREATED              STATUS                          PORTS               NAMES
    4c8c97fd5dc1        centos              "/bin/bash"         About a minute ago   Exited (0) About a minute ago                       wow
    
    $ docker start wow
    wow
    
    $ docker ps
        CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
    
    $ docker exec -it wow /bin/bash
    Error response from daemon: Container 4c8c97fd5dc1f98033d71063de8dfb27755f779433af39f00b9ded1c9a7d655a is not running
    
    $ docker attach wow
    You cannot attach to a stopped container, start it first
    
[/code]

コマンドが違うのでしょうか、そもそもstartでちゃんとコンテナが立ち上がっていないようなのです。

環境は  
OS：macOS Mojave 10.14.6  
Docker: 2.1.0.3


CC BY-SA 4.0
2019-10-03T09:01:13.543
59431
2020-02-09T11:03:10.423
16877
question
docker docker-for-mac
Dockerのコンテナが立ち上がらない


根本的な解決には繋がりませんでしたが、こうなってしまうのを避ける道はありました。  
`docker run`  
を用いれば起動状態でコンテナ作成されますので  
そうすれば一度抜けた後も特に問題なく入ることができました。

……よくわかりません。


CC BY-SA 4.0
2019-12-30T14:53:47.183
61897
2019-12-30T14:53:47.183
16877
59431
answer


システムコールのトレースを取ると原因がわかるかもしれません。  
※あるはずの設定ファイルがなくてopenに失敗しているなど  
Linux系では`strace`、solarisでは`truss`を使います。

MacOSでトレースを取ったことはありませんが、次のページを見つけました。  
[MacOSXでstraceが欲しいけどdtrace意味わからん→dtruss使おう](https://qiita.com/hnw/items/269f8eb44614556bd6bf)  
[macOS
でシステムコールトレースを取得する](https://yohei-a.hatenablog.jp/entry/20171206/1512579504)

これらの記事によれば`dtruss`でコマンドを起動すると`strace`相当のことができるようです。

[code]

    sudo dtruss -f sudo -u $(id -u -n)  docker attach wow
    
[/code]

実行前に`man dtrace`で使い方を調べた方がいいです。  
大量のトレースログが出るので注意してください。


CC BY-SA 4.0
2019-12-30T22:29:18.733
61900
2019-12-30T22:29:18.733
35558
59431
answer