【備忘録】docker exec <container ID> bash -cで怒られた
docker exec
でls
コマンドを打とうとしたらエラーが出たので、備忘録として。
環境
- Docker 17.12.0-ce, build c97c6d6
- elementary OS 0.4.1 Loki (ubuntu 16.04.1)
状態
docker psで出てくるのが以下2つです。
$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 5f5341ffb035 0f9e103b1a23 "bash" About an hour ago Up About an hour xenodochial_albattani 402d9d6b0227 ubuntu:16.04 "bash" About an hour ago Up About an hour gifted_meninsky
一番上のコンテナ内のルートディレクトリを参照したい。
$ docker exec 5f5341ffb035 bash -c 'ls /' OCI runtime exec failed: exec failed: container_linux.go:296: starting container process caused "exec: \"/bin/bach\": stat /bin/bach: no such file or directory": unknown
だめっぽい。
$ docker exec 5f5341ffb035 /bin/bash -c 'ls /' OCI runtime exec failed: exec failed: container_linux.go:296: starting container process caused "exec: \"/bin/bach\": stat /bin/bach: no such file or directory": unknown
だめですね。
解決
これですね。
docker exec
のオプションが足りなかった模様。
docker exec -i 5f5341ffb035 bash -c 'ls /' bin boot dev etc home lib lib64 media mnt opt proc root run samplefile sbin srv sys tmp usr var
わざわざコンテナの中に入らずとも無事参照できました。
おわりに
dockerのロゴ使用に決まりとかあったんですね。
みなさんも気をつけましょう。