web-dev-qa-db-ja.com

デーモンからのエラー応答:コンテナCONTAINER_NAMEが実行されていません

Dockerイメージのdajobe/hbaseがあり、Ubuntuからビルドされています。この画像のコンテナを作成し、hbという名前を付けました。

$ docker run -d --name hb dajobe/hbase
e1f68ff8b3b6c5e474426e2566f8c087d6a785fc5eeb58cd2aeb86176068651d

次に、hbで/ bin/bashを開始し、viエディターが使用可能かどうかを確認しました。

$ docker exec -it hb /bin/bash
root@e1f68ff8b3b6:/# vi
bash: vi: command not found

次に、apt-getを使用してviエディターをインストールしました

# apt-get install vim
Reading package lists...
DoneBuilding dependency tree
Reading state information... Done
.....
.....

Viエディターが存続できるように、変更をコミットしたかったのです。

$ docker commit hb dajobe/hbase
1be196188efc5a52562dc8ee1b63d0fd560ea163c49331c10dc435848d75ef64

その後、dajobe/hbaseを再度起動すると、自動的に停止しました。

$ docker run -d --name hb dajobe/hbase
c3e7b9f48077ef854efc6f9bab5e85986e265c98de5423bece0000c973206c38

$ docker exec -it hb /bin/bash
FATA[0000] Error response from daemon: Container hb is not running

コンテナが実行されないのはなぜですか?

$ docker ps -a
CONTAINER ID        IMAGE              COMMAND          CREATED                   STATUS                 PORTS      NAMES
c3e7b9f48077 dajobe/hbase:latest "/opt/hbase-server"  11 secs ago         Exited (0) 8 secs ago                      hb

ステータスが「終了」なのはなぜですか?コミットする前はそうではなく、ステータスは「アップ」でした。

8
Aaquib Khwaja

ステータスが終了することを期待します。おそらく、使用していた元のイメージには、実行中にコンテナーを実行し続ける何かを実行するENTRYPOINTが含まれていました。あなたはこれを試すことができます:

docker run -d --name hb dajobe/hbase sleep 60

次に、execを試してください。次の60秒間、インタラクティブシェルに接続します。その後、同じメッセージが再び表示されます。

-dは、コンテナをデーモンにします。ただし、何かする必要があります。そうしないと、終了します。 -itを使用して実行ラインを実行してみましたか?

docker run -it --name hb dajobe/hbase bash

そこにもシェルプロンプトが表示され、画像を更新できます。

-g

2
Greg